析構函數是在類的破壞時自動執行的操作,析構函數在碎片收集時會自動調用,程序員無法控制何時調用析構函數,因爲這是由垃圾回收器決定的
垃圾回收器
與運行時不進行垃圾回收的開發語言相比,C#無需太多的內存管理,這是因爲.NETFramework垃圾回收器會隱式的管理對象的分配和釋放,垃圾回收器檢查是否存在應用程序不在使用的對象,如果垃圾回收器認爲某個對象符合析構,則調用析構函數,並回收此對象佔用的內存,應用程序退出時也會調用析構函數
爲什麼使用析構函數?
一般情況下,C#應用程序中很少使用析構函數,但是當應用程序封裝窗口,文件和網絡連接這些非託管資源時,應該使用析構函數釋放這些資源,因爲垃圾回收器不是所有的資源都能釋放的
創建析構函數需要注意以下幾點
1:析構函數只能定義在類中,不能定義在結構中
2:一個類只能有一個析構函數
3:無法重載析構函數
4:無法調用析構函數,它們被自動調用
5:析構函數沒有修飾符,也沒有參數
6:析構函數與類同名
舉例
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _14_Destructor
{
class Program
{
static void Main(string[] args)
{
}
}
class Student
{
~Student()
{
}
}
}