擴充套件方法 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...