加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – .NET删除父类是否会将子节点变为“垃圾”?

发布时间:2020-12-15 04:18:02 所属栏目:百科 来源:网络整理
导读:假设您有一个Collection B,并且您即将删除一个项目. B的实例从A的实例引用,并引用C的实例,如第一张图所示: Figure A http://i43.tinypic.com/240wuqh.jpg 现在,由于存在指向B的引用,因此毫无疑问该对象被“删除”或被垃圾收集.它只是从集合中删除,就像这样,
假设您有一个Collection< B>,并且您即将删除一个项目. B的实例从A的实例引用,并引用C的实例,如第一张图所示:

Figure A http://i43.tinypic.com/240wuqh.jpg

现在,由于存在指向B的引用,因此毫无疑问该对象被“删除”或被垃圾收集.它只是从集合中删除,就像这样,对吗?

Figure B http://i41.tinypic.com/4uxnp3.png

现在,让我们有一个集合< A>使用与之前相同的引用层次结构,让我们删除A的实例.

Figure C http://i44.tinypic.com/1zd93dt.png

如果没有其他对A的引用,不仅它从集合中删除,它被标记为垃圾.我对吗?那么B和C呢?它们是否也成为垃圾,除非B引用C实例,否则没有其他引用?

这是我所面临的简化.我想从集合中删除一个A实例,我想确保B和C一起使用它.在A不再出现在我的收藏中时,所有仍然活着的“孩子”对我来说都是记忆泄漏.

当我看到我制作的这些照片时,这个问题似乎太愚蠢了.但我的情况有点不那么微不足道.它看起来像这样:

figure 4 http://i41.tinypic.com/2ymhlq0.png

>在图片中,Model层为黄色,ViewModel层为绿色
>’ViewModel’类引用其A模型
> A模型有一个B模型实例的集合(B是A的子类,在Model和ViewModel层中都是)
>每个B模型“知道它的父级” – 引用其父级“模型”实例
>返回VM层,’A ViewModel’包含’B ViemModel’项目的集合
>任何好的ViewModel,’B ViewModel’引用’B模型’

我有一个ViewModel实例的集合.当我删除一个时,我需要其他所有内容.如果所涉及的任何实例没有其他“外部参考”(基本上,没有其他箭头指向图片外部),被移除的“ViewModel”实例是否会将所有孩子带走?如果是这样,是否有任何“陷阱”可以使这种简化误导?如果我完全错了,为什么?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读