从Dictionary中删除值(Object)时会发生什么?

时间:2014-07-31 05:57:03

标签: c# dictionary garbage-collection

我对ObjectDictionary移除后会发生什么情况有疑问。可以说我有以下片段:

Dictionary<string, TestClass> classdictionary = new Dictionary<string, TestClass>();

testclass = new TestClass();

classdictionary.Add("1", testclass);

classdictionary.Remove("1");

现在testclass会发生什么?它会被GC清理吗?

1 个答案:

答案 0 :(得分:3)

只要你有另一个参考,它就不会被清理。

如果您的字典保留了对它的最后一个引用,垃圾收集器将清理它。与往常一样,这不会立竿见影,而是在未来的某个时间GC算法感觉就像在做工作。