1. 程式人生 > 其它 >.Net 【基礎回顧】函式

.Net 【基礎回顧】函式

建構函式

方法名與類名相同

沒有返回值型別

必須要通過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函式

定義且實現,子類可以重寫也可以不重寫