.Net 【基礎回顧】函式
阿新 • • 發佈:2022-05-18
建構函式
方法名與類名相同
沒有返回值型別
必須要通過new的形式呼叫
可以過載
解構函式
用於在類銷燬之前釋放類例項所使用的託管和非託管資源
一般GC隱式地執行記憶體釋放
若建立封裝了非託管資源的物件,在應用程式使用完這些非託管資源之後,垃圾回收站將執行物件的解構函式(即Finalize方法)來釋放這些資源
class Person
{
~Person()
{
Console.WriteLine("解構函式被呼叫了");
}
}
使用解構函式注意
不能在結構體中定義解構函式,只能對類使用解構函式;
一個類只能有一個解構函式;
無法繼承或過載解構函式;
無法顯式地呼叫解構函式,解構函式是有垃圾回收器自動呼叫的;
解構函式既沒有修飾符也沒有引數。
匿名函式
有兩種語法風格:Lambda表示式(lambda-expression)和匿名方法表示式(anonymous-method-expression)
x => x + 1 //隱式的型別化,函式體為表示式 x => {return x + 1;} //隱式的型別化,函式體為程式碼塊 (int x) => x + 1 //顯式的型別化,函式體為表示式 (int x) => {return x + 1;} //顯式的型別化,函式體為程式碼塊 (x , y) => x * y //多引數 () => Console.WriteLine() //無引數 async (t1 , t2) => await t1 + await t2 //非同步 delegate (int x) {return x + 1;} //匿名函式方法表示式 delegate {return 1 + 1;} //引數列表省略
抽象/abstract函式
class中定義但不實現
虛/virtual函式
定義且實現,子類可以重寫也可以不重寫