C#委托總結-入門篇


1,概念:委托類型表示對具有特定參數列表和返回類型的方法的引用。 通過委托,可以將方法視為可分配給變量並可作為參數傳遞的實體。

 

委托是引用類型,可以把它看作是用來存方法的一種類型。比如說類型string用來定義存取字符串的變量,那么委托類型delegate就可以用來定義存方法的變量。委托和類一樣,是一種用戶自定義類型。但類表示的是數據和方法的集合,而委托表示的是一個或多個方法的集合。你可以把delegate看作一個包含有序方法列表的對象,這些方法具有相同的簽名和返回類型

 

 

2,聲明委托類型

 

委托類型不需要在類內部聲明,因為它是類型聲明

 

3,委托對象的創建和賦值

  

    delegate void MyDel(string value);
    class Program
    {
        void Print1(string value)
        {
            Console.WriteLine("方法1:{0}", value);
        }
        void Print2(string value)
        {
            Console.WriteLine("方法2:{0}", value);
        }
        void Print3(string value)
        {
            Console.WriteLine("方法3:{0}", value);
        }
        /// <summary>
        /// 執行委托方法
        /// </summary>
        /// <param name="d">委托類型參數</param>
        /// <param name="value">委托內方法的參數</param>
        void PrintFun(MyDel d, string value)
        {
            d(value);
        }
        static void Main(string[] args)
        {
            Program p = new Program();
            MyDel del1, del2, del3;//聲明委托變量

            //賦值
            del1 = p.Print1;
            del2 = p.Print2;

            //組合委托
            del3 = del1 + del2;


            //給委托賦新值
            del1 = p.Print2;


            //給委托添加方法
            del1 += p.Print3;


            //從委托移除方法
            del1 -= p.Print2;

            p.PrintFun(del1, "已運行");//調用


            Console.WriteLine("\n運行組合委托");
            p.PrintFun(del3, "已運行");
            Console.ReadKey();
        }
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM