析构方法是在垃圾回收、释放资源时使用的。
析构函数用于析构类的实例。
备注:
- 不能在结构中定义析构函数。只能对类使用析构函数。
- 一个类只能有一个析构函数。
- 无法继承或重载析构函数。
- 无法调用析构函数。它们是被自动调用的。
- 析构函数既没有修饰符,也没有参数。
析构方法的定义语法形式如下。
!!!!!!!!!!!!!!!
注意:析构方法的方法名必须与当前所在类名一样
。
~方法名()
{
语句块;
}
在析构方法中不带任何参数,它实际上是保证在程序中会调用垃圾回收方法 Finalize()。
【实例】在 User 类中添加析构方法并验证析构方法的效果。
根据题目要求,析构方法是在类操作完成后调用的,代码如下。
~User()
{
Console.WriteLine("调用了析构方法");
}
执行 Main 方法,效果如下图所示。
但是也有可能不会运行析构函数
程序员无法控制何时调用析构函数,因为这是由垃圾回收器决定的。垃圾回收器检查是否存在应用程序不再使用的对象。如果垃圾回收器认为某个对象符合析构,则调用析构函数(如果有)并回收用来存储此对象的内存。程序退出时也会调用析构函数。
可以通过调用 Collect
强制进行垃圾回收,但大多数情况下应避免这样做,因为这样会导致性能问题。有关更多信息,请参见强制垃圾回收。