本文來說明一下C#中的擴充方法要怎麼使用,還有它的注意事項

1. 建立的擴充類別的要使用靜態,要新增擴充的方法也要使用靜態

2. 擴充類別的名稱可以考慮使用「被擴充類別的名稱+Extension』,例如Int32Extension.

3. 擴充的方法輸入參數至少要有一個被擴充型別的參數,而這個參數要用「this 被擴充型別 參數名』,例如Int32被擴充,要你的輸入參數就要有「this int value』.

來看一下例子

using System;
using System.Linq;

namespace ExtensionMethod
{
    class Program
    {
        static void Main(string[] args)
        {
            Original oclass = new Original();
            oclass.PrintToScreen(123);
            oclass.PrintMoneyToScreen(123);
            Console.ReadKey();
        }
    }

    public class Original
    {
        public void PrintToScreen(int value)
        {
            Console.WriteLine(value);
        }
    }

    public static class OriginalExtension
    {
        public static void PrintMoneyToScreen(this Original obj, int value)
        {
            Console.WriteLine(value.ToString("$###,###,###,#0"));
        }
    }
}

黃色的部分就是被擴充的類別,綠色的部分就是擴充類別,而PrintMoneyToScreen()就是擴充方法,this Original obj是第一個參數,也是必要參數,擴充和被擴充利用這個參數產生關係,而第二個int vlaue就是我預計要傳入的參數.

執行結果如下

123
$123

使用擴充方法輸出螢幕就使用錢的格式了.

你會說為什麼要這麼麻煩呢??不是只要弄個方法就能解決了,幹麻一定要用擴充方法呢??

因為物件導向有時你會遇到外部程式DLL,你不見得有原始碼,或者封裝後,你要進行功能的擴充,這時擴充方法就是你的好朋友了.

 

arrow
arrow

    痞客興 發表在 痞客邦 留言(0) 人氣()