C 擴充套件方法和靜態類詳解

2021-08-07 19:35:10 字數 657 閱讀 7245

1.靜態方法屬於類,而普通方法則屬於物件,因此靜態方法可以用類名.靜態方法 來呼叫,而普通方法則必須用new來例項化後呼叫

2.靜態類中只能有 靜態的方法,屬性和變數

3.普通類中能有普通方法,也能有靜態類。在呼叫裡面的靜態方法時,可以使用普通類名.靜態方法來呼叫,不需要例項化類

擴充套件方法:

擴充套件方法的核心三要素是靜態類,靜態方法,和this引數。

既在靜態類中定義的靜態方法,該方法的第乙個引數帶this,那麼這個方法即為靜態方法。

如:

public partial class mainwindow : window

}public static class extent

}

上面的例子是,為textblock,定義的乙個靜態方法sum,然後通過物件.sum來呼叫。

由於textblock是微軟封裝的,所以並不能修改源**,可是想要為該型別新增一種通用方法,那麼就可以使用擴充套件方法。

這就是擴充套件的意義。為某一型別做某個功能的擴充套件。

system.linq  就是最典型的擴充套件方法的例子。定義了靜態類enumerable,然後定義了很多ienumerable型別的擴充套件方法。

為所以繼承自ienumerable的集合如list, dictionary提供快速取值的一系列的方法。

類方法和靜態方法

通過靜態方法和類方法能夠把相關的函式封裝到乙個類裡面,有效的將 組織起來,提高 的可維護性 class date object def init self,year,month,day self.year year self.month month self.day day 普通方法 def ech...

靜態類 靜態欄位和靜態方法

1.靜態類 永遠也不需要例項化的類,這種類唯一的作用就是將一組相關的成員組合到一起。static 關鍵字只能用於類,不能用於結構,因為clr 總是允許值型別例項化,沒辦法阻止 by clr via c 靜態類有如下特點 1 不能實現任何介面 因為只有類的例項才可以呼叫類的介面方法 2 內部只能定義靜...

靜態類和靜態類成員(C )

靜態類與非靜態類基本相同,但存在乙個區別 靜態類不能例項化。也就是說,不能使用 new 關鍵字建立靜態類型別的變數。因為沒有例項變數,所以要使用類名本身訪問靜態類的成員。例如,如果名為 utilityclass 的靜態類有乙個名為 methoda 的公共方法,則按下面的示例所示呼叫該方法 c uti...