国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#委托delegate實例解析

2020-01-24 02:33:50
字體:
來源:轉載
供稿:網友

所謂c#的委托就是說把函數當參數來傳遞。

這個在js完全就用不著搞什么委托東西,直接轉就是了。而對于C#來說則不是這樣!

一個函數,如果它的參數是函數,那么是這樣子寫的 :

public void method(Action<string, Int32> voidMethod, Func<string, Int32> returnMethod)Action<string, Int32> voidMethod

意思是說這個將被傳進來的函數是一個沒有return的函數,就是public void, 它需要一個str參數
(這里提一下,js中每個函數都是return的即使你沒有寫,它也會return undefiend)

Func<string, Int32> returnMethod

意思是說這個函數是一個有return的函數,最后一個參數Int32代表了它的return是一個Int32 , 就是 public Int32啦, 那么除了最后一個參數其余的都是這個函數所需要的參數了

那么如何調用呢? 

method(delegate(string a, string b, Int32 c){  //do something }, delegate(string a, string b){  //do something   return 5;});

這里使用的是匿名函數delegate(){},這個比較習慣,因為js大多數會用匿名函數的。

當然,如果你硬是喜歡用老式的寫法,也可以寫比較傳統的:

public void method(tuoguan voidMethod, tuoguan2 returnMethod) //這里不可以在寫 Action or Func了{  Int32 i = returnMethod("b");  voidMethod("b");}public delegate void tuoguan(string name);public delegate Int32 tuoguan2(string name);public Int32 returnMethod(string name){  return 5;}  tuoguan xx = delegate(string name)   { //do somthing   };  tuoguan2 yy = returnMethod; //這里可以指向某個方法,不是一定要寫 delegate  method(xx, yy);

委托是很好用的,比如我對進去的匿名函數也可以引用到作用域上的變量,這個和js是一樣的!
把它當js來寫,我覺得這樣非常好!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高台县| 砀山县| 湖南省| 德惠市| 册亨县| 会昌县| 浑源县| 运城市| 沂源县| 五峰| 松江区| 邵东县| 襄城县| 洪江市| 兰溪市| 收藏| 东乡族自治县| 金华市| 高要市| 桂平市| 家居| 顺昌县| 易门县| 玉田县| 靖江市| 招远市| 庆云县| 上饶县| 洱源县| 涡阳县| 桃园市| 黄山市| 靖远县| 建平县| 泗阳县| 政和县| 田林县| 安顺市| 山阴县| 绩溪县| 华安县|