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

首頁 > 編程 > C# > 正文

c#中的泛型委托詳解

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

今天學習一下c#中的泛型委托。

1.一般的委托,delegate,可以又傳入參數(<=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); //聲明一個委托 public class getIntClass {  public static void SetDelegateString(int a,GetIntDelegate getIntDelegate) {//使用委托  getIntDelegate(a); } public void getInt1(int a) { //方法1  Console.WriteLine("getInt1方法調用,參數為:" + a); } public void getInt2(int a) { //方法2  Console.WriteLine("getInt2方法調用,參數為:" + a); } } class Program { static void Main(string[] args) {  getIntClass gc=new getIntClass();  getIntClass.SetDelegateString(5, gc.getInt1);  //方法1,2作為委托的參數  getIntClass.SetDelegateString(10, gc.getInt2);   Console.WriteLine("=====================");  GetIntDelegate getIntDelegate;  getIntDelegate = gc.getInt1;     //將方法1,2綁定到委托  getIntDelegate += gc.getInt2;  getIntClass.SetDelegateString(100, getIntDelegate);   Console.Read(); }  }}

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

2.泛型委托之Action,最多傳入16個參數,無返回值。

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傳入一個參數測試  action(p1); } public static void TestAction<T, P>(Action<T, P> action, T p1, P p2) { //Action傳入兩個參數測試  action(p1,p2); } public static void getString(string a) {    //實現int類型打印  Console.WriteLine("測試Action,傳入string,并且傳入的參數為:" +a); } public static void getInt(int a) {     //實現String類型打印  Console.WriteLine("測試Action,傳入int,并且傳入的參數為:" + a); } public static void getStringAndInt(int a, string name) {    //實現int+string類型打印  Console.WriteLine("測試Action,傳入兩參數,并且傳入的參數為:" + a+":"+name); } }}

測試結果:

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

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

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 六盘水市| 景泰县| 葵青区| 东明县| 安西县| 理塘县| 桂东县| 兰西县| 三江| 永川市| 大足县| 长子县| 汾阳市| 高唐县| 西畴县| 冀州市| 南陵县| 诸城市| 茂名市| 精河县| 黎川县| 寿光市| 溧阳市| 天祝| 江永县| 绵阳市| 慈利县| 辽源市| 金昌市| 阿尔山市| 渝北区| 嘉定区| 祁连县| 无为县| 临邑县| 浦东新区| 克什克腾旗| 福鼎市| 米泉市| 宁都县| 贵南县|