C# 方法中的this參數--.NET3.5類型的擴展方法

 

先看下面的代碼:

public static class StringExtension
{
 public staticvoid Foo(this string s)
 {
  Console.WriteLine("Foo invoked for {0}",s);
 }
}

爲什麼這裏會有一個this關鍵字,做什麼用?其實這就是擴展方法!這個擴展方法在靜態類中聲明,定義一個靜態方法,其中第一個參數定義可它的擴展類型。Foo()方法擴展了String類,因爲它的第一個參數定義了String類型,爲了區分擴展方法和一般的靜態方法,擴展方法還需要給第一個參數使用this關鍵字。

現在就可以使用帶string類型的Foo方法了:

string s="Hello"; s.Foo();

結果在控制檯上顯示Foo invoked for Hello ,因爲Hello是傳送給Foo方法的字符串。

 

歸納擴展方法可以寫入最初沒有提供該方法的類中。還可以把方法添加到實現某個接口的任何類中,這樣多個類可以使用相同的實現代碼。

 


發佈了58 篇原創文章 · 獲贊 4 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章