C# 擴充方法 Extesion Methods

使用 C#的語言特性,在現有類型加入方法。

善用擴充方法,可以慢慢建立一套自己的小工具,使自己未來開發越來越方便。

Extension Method 是在 C# 3.0時出現的語言特性,可以把一個static method 附加到型別上

public static int (this String str)

this 後面就是型別要附加的型別

Extension Method 使用注意事項:

  • 必須放在一個 static 類別中
  • 必須是 static method
  • 要使用時必須using該 static 類別的 namespace (同一個 namespace 時就不需要)

下面範例使用 建立一個專案 ExtensionMethodsDemo 作為範例,並建立一個Extensions資料夾,並建立一個MyExtensions.cs的檔案

namespace ExtensionMethodsDemo.Extensions
{
    public static class MyExtensions
    {
        public static int ToInt(this String str)
        {
            return Int32.Parse(str);
        }
    }
}

接著便可以在想要使用這個擴充方法的地方using 命名空間,就可以使用擴充方法了

using ExtensionMethodsDemo.Extensions;

namespace ExtensionMethodsDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = "a123";
            int n = str.ToInt();
            Console.WriteLine($"Hello {n}! Type is {n.GetType()}");
        }
    }
}

就會印出 Hello 123! Type is System.Int32

 

相關連結

官方教學手冊