【发布时间】:2014-02-27 06:38:44
【问题描述】:
嗨,我是 OOPS 的初学者,请帮助我理解这一点
如何调用静态类的贬损者?否则如何为静态类、方法和对象释放内存?
【问题讨论】:
-
到目前为止您尝试了什么,请发布您的一些代码,以便我们为您提供帮助。
标签: static-constructor explicit-destructor-call
嗨,我是 OOPS 的初学者,请帮助我理解这一点
如何调用静态类的贬损者?否则如何为静态类、方法和对象释放内存?
【问题讨论】:
标签: static-constructor explicit-destructor-call
C# 是一种托管语言。这意味着 .NET 将在不再使用时使用所谓的垃圾收集器自动释放内存。这与 C++ 不同,例如,您需要显式删除对象才能释放它。在 C++ 中,当您对对象调用 delete 时,将调用对象的析构函数。在 C# 中,每当 .NET 垃圾收集器决定销毁对象时,都会调用析构函数(最终,一旦您没有对它的引用并且它超出范围并且 .NET 决定回收内存)
静态类可以在类内部分配静态变量。静态类没有被调用的析构函数。所以你问题的那一部分不适用。
【讨论】:
要为对象实例分配内存,你应该使用构造函数:
Object o = new Object();
MyClass m = new MyClass();
*静态字段*s由.Net分配;所以只需声明它们:
public class MyClass {
public static Object o = new Object();
public static int i = 123;
}
方法、属性是C语言中的一种函数,所以根本不能分配
静态类被密封和抽象不能被创建,所以不能被分配
【讨论】: