gpt4 book ai didi

c# - 附加依赖属性与字典 - Silverlight

转载 作者:行者123 更新时间:2023-11-30 18:42:06 25 4
gpt4 key购买 nike

第一篇文章。所以首先,感谢多年来我从旁观者那里学到的所有帮助。我只是有一个在其他地方找不到的相当具体的代码设计问题。

我有一系列与特定 FrameworkElements 相关的 Storyboard(除其他外),需要在代码中生成,我觉得它要么有点乱,要么可能有点慢(我想我还没有未经测试)以存储具有 FrameworkElement - Storyboard 关系的字典,以便即时查找。

    private static Dictionary<FrameworkElement, Storyboard> storyboardMapping;

private void FrameworkElement_SizeChanged(object sender, SizeChangedEventArgs e)
{
FrameworkElement fe = sender as FrameworkElement;
Storyboard sb = null;

if(storyboardMapping.TryGetValue(fe, out sb))
{
sb.Begin();
}
// etc
}

刚刚考虑使用(私有(private))附加依赖属性,有人对一个是否比另一个更快/更清洁有意见吗?我看到使用字典的另一个缺点是它们也不能很好地与 WeakReferences 一起工作。不是 C# 大师,我不完全理解这是否会导致垃圾收集问题。

另外,我不确定这个词典能有多大。可能多达 400 个对象甚至更多?

最佳答案

我不会担心字典的内存占用。它们只是引用。

但是,长期存在的对象(静态)存在包含对短期对象(UI 元素)的引用的危险,因为这会阻止它们被垃圾收集。

关于c# - 附加依赖属性与字典 - Silverlight,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6057874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com