Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# c中的类引用和GC循环#_C#_Garbage Collection - Fatal编程技术网

C# c中的类引用和GC循环#

C# c中的类引用和GC循环#,c#,garbage-collection,C#,Garbage Collection,我看到有人用以下风格编写代码: Dictionary<string,SomeClass> dict = new Dictionary<string,SomeClass>(); ... dict.Add(key,someClass); ... dict[key] = null; dict.Remove(key); Dictionary dict=new Dictionary(); ... dict.Add(key,someClass

我看到有人用以下风格编写代码:

Dictionary<string,SomeClass> dict = new Dictionary<string,SomeClass>();
...    
dict.Add(key,someClass);    
...    
dict[key] = null;    
dict.Remove(key);
Dictionary dict=new Dictionary();
...    
dict.Add(key,someClass);
...    
dict[key]=null;
删除指令(键);
我想知道
dict[key]=null必要。这是否意味着通知总承包商?
但是,
someClass
没有其他地方被引用,
它是多余的吗?

是的,它是多余的。如果无论如何都要删除该键,那么没有必要先将条目更改为空值。这对任何地方的垃圾收集都没有影响。

谢谢。如果一个父类正在被释放,那么在此之前是否有必要释放它的子类(在其他引用的地方没有)呢?@Sean:如果它们实现了IDisposable,那么是的,它们应该被释放。。。假设“家长”已经承担了其生命周期的责任。