最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

大白話講解C# 中的委托

 更新時間:2020年11月30日 08:49:50   作者:沙奇碼丶  
這篇文章主要介紹了C# 中的委托的相關資料,幫助初學者更好的理解和使用c#,感興趣的朋友可以了解下

有一天,你寫了好多好多帶“形參”的構造函數(shù)(就是“方法”,同義),而且需要向這些構造函數(shù)里傳遞同樣的“實參”,然后你就憨憨地一個一個函數(shù)的調(diào)用并賦予同樣的“實參”,這一天就這么過去了...

又過了幾天,你又要再一次調(diào)用這么多函數(shù)了,你再老老實實地一個一個函數(shù)進行調(diào)用?!聰明的你,肯定會想:真TM麻煩!有沒有一勞永逸的辦法呢?

你需要的正是----“委托”

來,先看一個簡單的例子,要表述的是----有一位貴賓將要作客一家豪華的酒店,老板(boss)下發(fā)了通知,他的兩個助理(ass1和ass2)分別要通知到女服務員(Waiteress)和廚師(Cooker),讓他們該干啥干啥去。

class Program
  {
    static void Main(string[] args)
    {
      //委托就是個“類”,也需要“實例化”,讓“ass1”通知“Waiteress”。
      Convey_Dele ass1 = new Convey_Dele(Waiteress);

      //讓“ass2”通知“Cooker”
      Convey_Dele ass2 = new Convey_Dele(Cooker);

      //“boss”通知兩個助理“ass1和ass2”,術語為“合并委托(或“多路廣播委托”)”
      Convey_Dele boss = new Convey_Dele(ass1 + ass2);

      //“boss”發(fā)話
      boss("一位貴賓要來了!");

      Console.ReadKey();
    }

    //聲明一個叫做“Convey_Dele”的委托,形參為“string command”
    public delegate void Convey_Dele(string command);

    //構造一個名為“Waiteress”的函數(shù),構造函數(shù)的形參必須與委托形參一致!
    public static void Waiteress(string command)
    {
      //“Waiteress”要去干的事兒
      Console.WriteLine("女服務員接到通知:" + command + "所以她要去迎接客人");
    }

    public static void Cooker(string command)
    {
      Console.WriteLine("廚師也接到了通知:" + command + "所以他去準備飯菜");
    }
  }

運行后的結果:

這樣,老板發(fā)出任何指令,下級都該干啥干啥去,老板不需要知道下級的具體動作是什么,只要干的好,完成就可以。

聰明的你,又會想,代碼能否再簡化和多樣化呢?可以。上面代碼可以更改為:

class Program
  {
    static void Main(string[] args)
    {
      Convey_Dele ass1, ass2;

      //另寫函數(shù)再實例化太麻煩了,直接在這里把函數(shù)一起寫了。術語“匿名函數(shù)”,“delegate”是關鍵字
      ass1 = delegate (string command) { Console.WriteLine("女服務員接到通知:" + command + "所以她要去迎接客人"); };

      //匿名函數(shù)也太麻煩了,還得寫“delegate”,改用一個符號來表示,術語“蘭姆達表達式”
      ass2 = (string command) => { Console.WriteLine("廚師也接到了通知:" + command + "所以他去準備飯菜"); };

      //等同于 ass1 = ass1 + ass2,基本的“加等”運算符,“減等”也是可以使用的~ 比如:若ass1 = ass1 + ass2,那ass1 -= ass1等同于ass1=ass2
      ass1 += ass2;

      ass1("一位貴賓要來了!");

      Console.ReadKey();
    }

    public delegate void Convey_Dele(string command);
  }

 運行后的結果與之前未簡化前一模一樣。這樣的簡化寫法還是有很強的“可讀性”的,“匿名函數(shù)”和“蘭姆達表達式”還有更簡單的寫法,只要是一個形參,還可以連形參都省略,知道這回事就行了...

 這樣,我們在調(diào)用眾多函數(shù)的時候就可以靈活運用委托來簡化代碼和“搬磚”的繁瑣勞動。

好了,初學委托的內(nèi)容就先講這么多吧,我也是在一邊學習,一邊去理解的,在寫博客時表現(xiàn)出來的有許多不足之處請廣大園友指出,我不吝賜教!

以上就是大白話講解C# 中的委托的詳細內(nèi)容,更多關于c# 委托的資料請關注腳本之家其它相關文章!

相關文章

  • C# windows語音識別與朗讀實例

    C# windows語音識別與朗讀實例

    這篇文章主要為大家詳細介紹了C# windows語音識別與朗讀實例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C#調(diào)用動態(tài)庫

    C#調(diào)用動態(tài)庫

    本文詳細講解了C#調(diào)用動態(tài)庫的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • DevExpress設置餅狀圖的Lable位置實例

    DevExpress設置餅狀圖的Lable位置實例

    這篇文章主要介紹了DevExpress設置餅狀圖的Lable位置的方法,以實例形式詳細講述了設置餅狀圖的Lable位置具體實現(xiàn)過程,需要的朋友可以參考下
    2014-10-10
  • Unity實現(xiàn)俄羅斯方塊(二)

    Unity實現(xiàn)俄羅斯方塊(二)

    這篇文章主要為大家詳細介紹了Unity實現(xiàn)俄羅斯方塊的第一部分代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • winform關閉窗體FormClosing事件用法介紹

    winform關閉窗體FormClosing事件用法介紹

    這篇文章介紹了winform關閉窗體FormClosing事件的用法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • C#操作注冊表的方法

    C#操作注冊表的方法

    這篇文章介紹了C#操作注冊表的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • c#添加Newtonsoft.Json包的操作

    c#添加Newtonsoft.Json包的操作

    這篇文章主要介紹了c#添加Newtonsoft.Json包的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • C#中GraphicsPath的Widen方法用法實例

    C#中GraphicsPath的Widen方法用法實例

    這篇文章主要介紹了C#中GraphicsPath的Widen方法用法,實例分析了Widen方法的使用技巧,需要的朋友可以參考下
    2015-06-06
  • .NET實現(xiàn):將EXE設置開機自動啟動

    .NET實現(xiàn):將EXE設置開機自動啟動

    .NET實現(xiàn):將EXE設置開機自動啟動的方法,需要的朋友可以參考一下
    2013-03-03
  • 使用代理模式來進行C#設計模式開發(fā)的基礎教程

    使用代理模式來進行C#設計模式開發(fā)的基礎教程

    這篇文章主要介紹了使用代理模式來進行C#設計模式開發(fā)的基礎教程,代理模式主張在客戶端和目標對象中間建立中介來降低程序設計的耦合度,需要的朋友可以參考下
    2016-02-02

最新評論

巴彦淖尔市| 新密市| 那曲县| 五家渠市| 德保县| 南通市| 西乌珠穆沁旗| 巴塘县| 临泉县| 海原县| 灵璧县| 朝阳县| 颍上县| 台中市| 铁岭市| 通许县| 鄂托克旗| 怀化市| 鄱阳县| 百色市| 吉林省| 武宁县| 锡林浩特市| 灌南县| 武汉市| 车致| 金湖县| 南城县| 乌什县| 东海县| 陈巴尔虎旗| 金华市| 临湘市| 凤庆县| 江口县| 安泽县| 侯马市| 平湖市| 陆良县| 遂昌县| 新泰市|