亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#基礎之擴展方法

發布時間:2020-07-23 20:42:09 來源:網絡 閱讀:455 作者:夢小羅馬 欄目:開發技術

擴展方法使您能夠向現有類型“添加”方法,而無需創建新的派生類型、重新編譯或以其他方式修改原始類型。 擴展方法是一種特殊的靜態方法,但可以像擴展類型上的實例方法一樣進行調用。 對于用 C# 和 Visual Basic 編寫的客戶端代碼,調用擴展方法與調用在類型中實際定義的方法之間沒有明顯的差異。 --- 摘自MSDN

下面我們自己定義一個A類和Program類來為string擴展方法

 public static class A
    {
        public static int Test(this string s)
        {

            return 1;
        }

        public static int IndexOf(this string s, char c)
        {
            return 1;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            int a = A.Test("sds");
            int c = "sds".Test();
            Console.WriteLine(a);
            Console.WriteLine(c);

            int b = A.IndexOf("asdfg", 'd');
            Console.WriteLine(b);
            int d = "asdfg".IndexOf('d');
            Console.WriteLine(d);
        }
    }

擴展方法很簡單,就是在參數類型前面加this,就為當前參數的類型增加了擴展方法,但是必須在靜態類中聲明靜態方法(想要擴展的方法).以上例子為string類擴展了Test方法和indexof方法(string中有同名方法),運行結果為1 1 1 2,由此可以推論 擴展的方法如果和string類中的方法重名,則會執行string類中的方法,而不會執行擴展方法,再讓我們來看看反編譯的結果C#基礎之擴展方法

由此更可以確定 執行的是string中的方法,再看上面的兩個調用,可以觀察到調用的都是A類中的靜態方法,和string類并無多大關聯,也可以得出擴展方法是不能調用string中的私有變量和方法,所以 string類也不用重新編譯.

對擴展類總結下:

    擴展方法不改變原有被擴展類代碼,不用重新編譯被擴展類.

    不能訪問被擴展類的私有成員,當和同名方法重名時優先執行原方法

    引用一個類庫,但是我們沒有該類庫的源代碼,那么我們可以使用擴展方法 ,使用擴展方法進行類的擴展。

          



第一次寫博文,望大神多多指點.

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西乡县| 韶山市| 皮山县| 南投县| 视频| 钟祥市| 拉孜县| 邻水| 土默特右旗| 文水县| 独山县| 渑池县| 康乐县| 修水县| 班戈县| 宝山区| 重庆市| 怀来县| 甘南县| 神农架林区| 呼图壁县| 马鞍山市| 孝昌县| 汉川市| 宜宾市| 湖南省| 贵港市| 梓潼县| 兴国县| 西乌珠穆沁旗| 礼泉县| 丁青县| 天峨县| 双峰县| 辽宁省| 邮箱| 洛扎县| 桐城市| 永和县| 大竹县| 朔州市|