NET已有很长时间了,并且已经开始学习C#。我想几年前我可能已经问过的一件事,得到了答案,但现在已经完全忘记了,因为我隐式使用的东西不是析构函数。在学习C#的过程中,我读了一篇有关如何在C#中创建它们的文章,但是这让我感到疑惑。假设我实例化了一个类,该类具有另一个类的对象。
Class C1
{
// Do something here
}
Class A
{
C1 objObjectToClass1 = new C1();
}
Class Main
{
A objObjectToClassA = new A();
}
我将其作为对象objObjectToClassA
,null
因为我一直相信这与object = nothing
VB.NET中的等效。
objObectToClassA = null;
这个动作还会破坏objObjectToClass1
吗?
实际上,是的,它也会破坏objectToClass1
,但不会立即破坏。在这种情况下,将变量设置为null意味着您的应用程序不再使用该对象,因此可以进行垃圾回收。简单地考虑一下(我确信GC会比这更聪明),一旦objectToClassA
被收集,便objectToClass1
不再被引用,也将被收集。
乔伊的评论IDisposable
绝对值得牢记;尽量不要考虑C#的终结器,因为您无法控制它们的运行时间。使用IDisposable
将为您整理整理资源提供所需的控制。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句