如何销毁字典<字符串,列表<操作>>等C#数据<object>?



我定义了像 Dictionary<string, List<Action<object>>>这样的对象来存储一些委托方法以调用。如果我想摧毁这个词典。我应该在字典中首先致电List.Clear()吗?或者只是致电Dictionary.Clear可以吗?

这个:

foreach(KeyValuePair<string, List<Action<object>>> kvp in dict)
{
   kvp.Value.Clear();
}
dict.Clear();
dict = null;

或这个:

dict.Clear();
dict = null;

如果您要删除最后一次实时引用dict,请不要打扰任何内容:如果dict保留在范围中,则只需分配null,或者如果在范围内,则不做任何事情dict的范围即将结束。

明确清除字典或所包含的任何列表,因为垃圾收集器都会以任何一种方式处理它。词典的明确清除及其包含的列表将是CPU周期的浪费。

只要您在DictionaryDictionary本身中存储的对象上没有引用,就可以将其设置为null

dict = null;

GC将照顾其余的。

仅此功能。仅在全球级别声明字典时才清除字典的参考。不需要清除本地对象。

    dict = null;

只要清除对象的引用,它将在该一代的下一个GC上从内存中清除。

相关内容

  • 没有找到相关文章

最新更新