天天看點

C#的擴充方法

擴充方法使你能夠向現有類型“添加”方法,為目标資料類型追加方法

而無需建立新的派生類型,重新編譯或以其他方式修改原始類型。擴充方法是一種特殊的靜态方法

但可以像擴充類型上的執行個體方法一樣進行調用

擴充方法的實作都是靜态類的靜态函數,第一個參數是調用擴充方法的對象,在類型前加this來辨別。

1.此方法必須是一個靜态方法

2.此方法必須放在靜态類中

3.此方法的第一個參數必須以this開頭,并且指定此方法是擴充自哪個類型

C#的擴充方法
C#的擴充方法

2.擴充方法中的this後面的參數不屬于方法的參數,本例是無參數,this後面的double是指明擴充方法擴充自何種類型

3.如果擴充方法和執行個體方法具有相同的簽名,則優先調用執行個體方法

4.擴充自父類上的方法,可以被子類的對象直接使用

5.擴充自接口上的方法,可以被實作類的對象直接使用

6.擴充方法最終還是被編譯器編譯成:靜态類.靜态方法(),doubleExtension.roud(),這是它的本質.

1、将執行個體方法調用在編譯期改變為靜态類中的靜态方法調用,實際上,它确實擁有靜态方法所有具有的所有功能。