關於C 擴充套件方法介紹

2021-06-08 13:58:48 字數 739 閱讀 8327

擴充套件方法 extension method.

這個可以用在,比方有乙個密封類,你不能修改它,但你又想對它繼承或者擴充套件,這個時候就可以用到擴充套件方法了。

舉個例子:

csharp**

class program  

}  sealed

class sealedclass  

static

class sealedclas***tension  

}  在上面的例子中,可以看出,要定義方法,需要做以下幾件事:

(1) 定義個擴充套件類;這個類必須是靜態類,static的

(2) 定義擴充套件方法;這個方法也必須是靜態的

(3) 該擴充套件方法的語法比較奇怪,第乙個引數是被擴充套件的類,而且前邊必須用個this關鍵字

下面再舉乙個例子。

我們經常使用到執行了ienumerable的容器,比如說list。這些容器因為執行了ienumerable介面,所以都能使用一些方法,比如aggregate。

如果去看ienumerable介面的定義,並沒有包含aggregate方法,所以aggregate實際是乙個擴充套件方法。

它是在靜態類enumerable中定義的。下面看一下,當然沒有完全列出enumerable類中所有的成員。

csharp**

public

static

class enumerable    

上面實際的例子中可以看出,不僅可以對類進行擴充套件,對介面也可以進行擴充套件。

關於擴充套件方法

先給幾個相關鏈結 擴充套件方法的說明 msdn 在說說我最近遇到的相關問題 最近在使用linq to xml 的時候,遇到的擴充套件方法的問題 本來想通過xpath語句來獲取元素,在網上看到有xpathselectelements這個方法,可是在使用的時候,如下 xdocument document...

擴充套件方法的簡單介紹

在說擴充套件方法之前先說乙個例子 把集合中字串小於 7 查詢出來,然後列印 static void main string args var temp list.where a a.compareto 7 0 foreach var item in temp console.readkey wher...

jquery的擴充套件方法介紹

最近一直在寫js,這其中也少不了一位js的主角了jquery,下面介紹的是jquery的一些擴充套件,也就是jquery的擴充套件方法,jquery的擴充套件方法有兩種方式,一種是jquery本身的擴充套件方法,另一種是jquery所選物件的擴充套件方法,下面一起來看。一 方式列表 1.jquery...