bob*_*bbo 3 c# .net-2.0 winforms
在C#2.0 winform应用程序中将托管对象设置为null通常是一个好主意,即在关闭它们时将表单和控件设置为null,或者我应该将其留给垃圾收集.
我的项目中的一个类叫做Job,它存储String和Lists类型等.是否有必要这样做:
if (Job != null)
{
Job = null;
}
Run Code Online (Sandbox Code Playgroud)
或者这只是非托管资源所必需的,例如具有dispose方法的文件句柄.我绝对应该调用它,然后设置为null.
任何澄清都会很棒.谢谢.
不 - 当你关闭应用程序时,你应该做任何你需要的事情来清除诸如文件句柄之类的东西(或者你可能丢失数据),但是你不需要担心内存.你的进程即将崩溃 - 除此之外它不可能占用任何内存,除非出现操作系统错误!
即使您的进程不打算终止,通常也不应将变量设置为null.几乎在所有情况下,垃圾收集器都会做你想要的.如果你知道变量本身仍然是"实时",你只需要将一个变量设置为null,但是你不希望它当前所引用的对象被该变量保持活着状态.这非常罕见.