当前位置:  开发笔记 > 编程语言 > 正文

使用Silverlight适当实现IDisposable?

如何解决《使用Silverlight适当实现IDisposable?》经验,为你挑选了1个好方法。

我正在使用MVVM模式处理Silverlight应用程序.我的ViewModel当前包含一个表示模型对象集合的属性:

public ObservableCollection IndexList
        {
            get;
            set;
        }

它还有几种方法可以使用从Web服务返回的数据填充该集合.

由于可以在应用程序运行时的过程中创建和销毁此类的实例,我是否应该实现IDisposable并将属性的引用设置为null,或者此类的销毁是否足以删除对集合的所有引用?属性引用?是否有任何警告可能会留下参考?

谢谢.



1> GWLlosa..:

引用在垃圾收集中存活的唯一方法是它是否为root.如果还有一些仍在使用的类包含对ObservableCollection的引用,则无论是否将其设置为null,都不会销毁ObservableCollection.例如,假设有一个"内存"对象是您的集合.您的财产中有一个对它的引用.其他一些代码执行"ObservableCollection <> myOtherReference = YourObject.IndexList;"这一行.它们现在也引用了实际的内存对象.使您的属性引用为null将只消除您的属性的引用; 'myOtherReference'引用不受影响,因为它现在直接指向内存,而不是您的属性.

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有