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

首頁 > 編程 > C# > 正文

c#中的泛型委托詳解

2019-10-29 21:15:39
字體:
供稿:網(wǎng)友

今天學(xué)習(xí)一下c#中的泛型委托。

1.一般的委托,delegate,可以又傳入?yún)?shù)(<=32),聲明的方法為  public delegate void SomethingDelegate(int a);

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace delegateSummary { public delegate void GetIntDelegate(int a); //聲明一個(gè)委托 public class getIntClass {   public static void SetDelegateString(int a,GetIntDelegate getIntDelegate) {//使用委托   getIntDelegate(a);  }  public void getInt1(int a) { //方法1   Console.WriteLine("getInt1方法調(diào)用,參數(shù)為:" + a);  }  public void getInt2(int a) { //方法2   Console.WriteLine("getInt2方法調(diào)用,參數(shù)為:" + a);  } } class Program {  static void Main(string[] args) {   getIntClass gc=new getIntClass();   getIntClass.SetDelegateString(5, gc.getInt1);   //方法1,2作為委托的參數(shù)   getIntClass.SetDelegateString(10, gc.getInt2);     Console.WriteLine("=====================");   GetIntDelegate getIntDelegate;   getIntDelegate = gc.getInt1;        //將方法1,2綁定到委托   getIntDelegate += gc.getInt2;   getIntClass.SetDelegateString(100, getIntDelegate);    Console.Read();  }  }}

輸出結(jié)果,注意兩種方式的不同,第一種將方法作為委托的參數(shù),第二種是將方法綁定到委托。

c#,泛型委托

2.泛型委托之Action,最多傳入16個(gè)參數(shù),無返回值。

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace delegateSummary { class Program {  static void Main(string[] args) {   TestAction<string>(getString, "WhiteTaken");  //傳入方法   TestAction<int>(getInt, 666);   TestAction<int, string>(getStringAndInt, 666, "WhiteTaken");   Console.Read();     }  public static void TestAction<T>(Action<T> action,T p1) {        //Action傳入一個(gè)參數(shù)測試   action(p1);  }  public static void TestAction<T, P>(Action<T, P> action, T p1, P p2) { //Action傳入兩個(gè)參數(shù)測試   action(p1,p2);  }  public static void getString(string a) {        //實(shí)現(xiàn)int類型打印   Console.WriteLine("測試Action,傳入string,并且傳入的參數(shù)為:" +a);  }  public static void getInt(int a) {          //實(shí)現(xiàn)String類型打印   Console.WriteLine("測試Action,傳入int,并且傳入的參數(shù)為:" + a);  }  public static void getStringAndInt(int a, string name) {      //實(shí)現(xiàn)int+string類型打印   Console.WriteLine("測試Action,傳入兩參數(shù),并且傳入的參數(shù)為:" + a+":"+name);  } }}

測試結(jié)果:

c#,泛型委托

3.泛型委托之Func,最多傳入16個(gè)參數(shù),有返回值。(寫法與Action類似,只是多了返回值)

4.泛型委托之predicate(不是很常用),返回值為bool,用在Array和list中搜索元素。(沒有用到過,等用到了再更新)

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持VEVB武林網(wǎng)!


注:相關(guān)教程知識(shí)閱讀請移步到c#教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 息烽县| 繁峙县| 夏河县| 陆丰市| 重庆市| 静宁县| 资中县| 万载县| 岑溪市| 浪卡子县| 兴海县| 开远市| 远安县| 丽江市| 德令哈市| 西昌市| 北碚区| 普安县| 梁平县| 沂源县| 仙居县| 黄骅市| 惠来县| 牙克石市| 凤山市| 余干县| 江门市| 靖安县| 潍坊市| 九寨沟县| 磴口县| 太湖县| 紫金县| 黑水县| 安国市| 巴彦县| 佛坪县| 辽阳市| 贵港市| 揭西县| 余庆县|