C#中的擴展方法


    擴展方法是C#3.0引入的新特性,使用它,可以在不修改某一類的代碼的情況下,實現該類方法的擴展。

    為一個類添加擴展方法,需要三個要素:

        1.擴展方法所在的類為靜態類

        2.擴展方法本身要為靜態方法

        3.擴展方法的第一個參數要用關鍵字this,指向要擴展的類

    下面請看一個實例:

 //靜態類
    public static class TestExtensionM
    {
        //靜態方法
        public static int ExtensionInt(this int s)  //this關鍵字
        {
            return s + s;
        }
    }

 

    這個擴展方法是服務於int類型的,返回它自己的2倍;

    使用方法也很簡單:

 

 int a = 9;
 a = a.ExtensionInt();
 Debug.WriteLine(a);

 

 

     a為9,調用擴展方法以后,也看到了正確返回結果18

    實際上也可以用: int.Add(a)的形式使用,但顯然上圖所示的更加簡單易用。 

 

    擴展方法,也可以傳入參數:

 //靜態類
    public static class TestExtensionM
    {
        //靜態方法
        public static int ExtensionInt(this int s,int a)  //this關鍵字
        {
            return s + a;
        }
    }

 

    使用的時候,傳入對應的參數即可

 

 int a = 9;
 a = a.ExtensionInt(6);
 Debug.WriteLine(a);

    這種靈活的方式,可以讓我們的開發更便捷,但是不要濫用擴展方法,當擴展方法與類原始的方法重名時,原始方法的優先級高於擴展方法,並且對於系統類,不要隨便添加擴展方法。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM