1. 程式人生 > >擴充套件方法(C#)

擴充套件方法(C#)

C#擴充套件方法在不需要直接更新目標型別的情況下,獲得功能上的擴充套件。

擴充套件方法必須定義在靜態類中,並要使用this關鍵字對第一個引數(即目標型別)進行修飾。

    static class MyExtensions {

        public static void DisplayDefiningAssembly(this object obj) {

           

Console.WriteLine("{0} lives here: {1}", obj.GetType().Name,

                System.Reflection.Assembly.GetAssembly(obj.GetType()));

        }

       

public static void Foo(this int i, string msg) {

            Console.WriteLine("{0} called Foo() and msg = {1}", i, msg);

        }

    }

    static void Main(string[] args) {

        int x = 12345;

        //在例項層次上呼叫擴充套件方法

        x.DisplayDefiningAssembly();

       

        //C#編譯器僅以普通的方式呼叫靜態方法,我們也可以自己靜態呼叫擴充套件方法

        MyExtensions.DisplayDefiningAssembly(x);

    }