C#擴展方法的實用價值

先臨時記一下,回頭再細說。

有些時候,我們拿到的dll是無法修改的,其中的類也無法修改,更無法增加它的方法,比如系統類型string。擴展方法給我們提供了一個在既有類中增加方法的途徑。使用擴展方法後,就可以在既有類中增加方法。

比如:

public static string func(this string a)
{
  return "喜馬拉雅山" + a;
}

 

這樣就使引用了這個類的類中的string類有了一個func方法,這個方法以字符串實例爲參數,返回處理結果,此處是“喜馬拉雅山”+a

如:

public class A

{

  public test(){

    string a = "abc";

    Console.WriteLine(a.func());

  }

}

這裏的a,神奇地擁有了func()方法。關鍵就在於public string func(this string a)中this後面的那個類,寫的是哪個類,就能讓哪個類擁有這個方法。如果這樣寫public T func<T>(this T a),就有讓所有類都有這個方法

調用這個test方法,會在控制檯上輸出“喜馬拉雅山abc”,也就是“喜馬拉雅山”+a的結果。

也可以理解爲我們給string這個類增加了一個方法。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章