1. 程式人生 > >C#擴充套件方法示例(this關鍵字)

C#擴充套件方法示例(this關鍵字)

        擴充套件方法能夠向現有型別“新增”方法,而無需建立新的派生型別、重新編譯或以其他方式修改原始型別。擴充套件方法是一種特殊的靜態方法,但可以像擴充套件型別上的例項方法一樣進行呼叫。C#擴充套件方法第一個引數指定該方法作用於哪個型別,並且該引數以 this 修飾符為字首。

1.擴充套件方法(this 需要擴充套件的類 命名),如:public static void ExtensionEat(this Person person);

2.擴充套件方法必須是靜態的

2.呼叫擴充套件方法,必須用物件來呼叫 

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Person p = new Person();
            p.ExtensionEat();
            p.ExtensionHello();
            Console.ReadKey();
        }
    }
    public class Person
    {
        public void Eat()
        {
            Console.WriteLine("吃飯");
        }
        public void Hello(string name)
        {
            Console.WriteLine("你好," + name);
        }
    }
    public static class ExtensionPerson
    {
        public static void ExtensionEat(this Person person)
        {
            person.Eat();
            Console.WriteLine("吃完了");
        }
        public static void ExtensionHello(this Person person)
        {
            person.Hello("李疆");
            Console.WriteLine("hahahah");
        }
    }
}