程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 深入理解C#委托與事件之---委托

深入理解C#委托與事件之---委托

編輯:C#入門知識

委托和事件,相信剛學C#的時候,很多朋友都會迷惑,委托和事件是怎麼一會事?難道真的那麼理解這個知點嗎!現在回想一下,當時我學的時候也迷惑了好幾天,不過可能是當時基礎不是很扎實的緣故。
        最近我看了一篇關於這個題材的文章,講得挺好的,現在希望在這裡能和大家分享和交流一下這些知識,同時如果能有更好的見解或建議,希望能也能夠和小弟分享,增長一下知識,順便促進一下博客園的友好交流氣氛


       首先,要了解事件,必須先從委托開始
       委托可以認為是這樣的對象,它是包含具有相同簽名和返回值類型的有序方法列表。就是說它定義了方法的類型,使得可以將方法當作另一個方法的參數來進行傳遞,這種將方法動態地賦給參數的做法使得程序具有更好的可擴展性。
    public delegate void GreetingDelegate(string name);//先定義個委托,注意,委托是類型,所以聲明和所以類型聲明一樣,不需要在類內部聲明。

    class Program
    {
         static void Main(string[] args)
           {

            GreetingDelegate delegate1;//聲明委托
            delegate1 = EnglishGreeting;// 先給委托類型的變量賦值
            delegate1 += ChineseGreeting;//委托和String很相似,但委托有個特別的地方,可以加多個值,調用的時候方法是按先後順 www.2cto.com
                                                           序調用
            delegate1(“小明”)
            Console.ReadKey();
            }
             static public void GreetPeople(string name, GreetingDelegate Make)
                 {
       
                    Make(name);

                 }
            static public void EnglishGreeting(string name)//定
                 {
                      Console.WriteLine("Morning, " + name);
                 }
            static public void ChineseGreeting(string name)
                {
                      Console.WriteLine("早上好, " + name);
                }


    }
   結果:"Morning, 小明"
            "早上好, 小明“


摘自 MR。迷

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved