欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

c#中的泛型委托詳解

 更新時間:2017年01月19日 10:42:23   作者:WhiteTaken  
本文主要介紹了c#中的泛型委托。具有很好的參考價值,下面跟著小編一起來看下吧

今天學習一下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); //聲明一個委托
 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ù),第二種是將方法綁定到委托。

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

測試結(jié)果:

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

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

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關文章

  • WCF入門教程之Windows通訊接口

    WCF入門教程之Windows通訊接口

    這篇文章介紹了WCF入門教程之Windows通訊接口,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#中隱式運行CMD命令行窗口的方法

    C#中隱式運行CMD命令行窗口的方法

    下面介紹一種常用的在C#程序中調(diào)用CMD.exe程序,并且不顯示命令行窗口界面,來完成CMD中各種功能的簡單方法。
    2011-04-04
  • Unity3D繪制地形的實現(xiàn)方法

    Unity3D繪制地形的實現(xiàn)方法

    這篇文章主要為大家詳細介紹了Unity3D繪制地形的實現(xiàn)方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • c# 文件操作(移動,復制,重命名)

    c# 文件操作(移動,復制,重命名)

    這篇文章主要介紹了c# 如何對文件操作(移動,復制,重命名),幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2020-12-12
  • c# 死鎖和活鎖的發(fā)生及避免

    c# 死鎖和活鎖的發(fā)生及避免

    多線程編程時,如果涉及同時讀寫共享數(shù)據(jù),就要格外小心。如果共享數(shù)據(jù)是獨占資源,則要對共享數(shù)據(jù)的讀寫進行排它訪問,最簡單的方式就是加鎖。鎖也不能隨便用,否則可能會造成死鎖和活鎖。本文將通過示例詳細講解死鎖和活鎖是如何發(fā)生的以及如何避免它們。
    2020-11-11
  • 深入理解C#實現(xiàn)快捷鍵(系統(tǒng)熱鍵)響應的方法

    深入理解C#實現(xiàn)快捷鍵(系統(tǒng)熱鍵)響應的方法

    本篇文章是對使用C#實現(xiàn)快捷鍵(系統(tǒng)熱鍵)響應的方法進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • c#使用Aspose打印文件的示例

    c#使用Aspose打印文件的示例

    這篇文章主要介紹了c#使用Aspose打印文件的示例,幫助大家更好的理解和學習使用c#,感興趣的朋友可以了解下
    2021-05-05
  • C# SESSION丟失問題的解決辦法

    C# SESSION丟失問題的解決辦法

    這篇文章主要為大家詳細介紹了C# SESSION丟失問題的解決辦法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • c#實現(xiàn)sunday算法實例

    c#實現(xiàn)sunday算法實例

    Sunday算法思想跟BM算法很相似,在匹配失敗時關注的是文本串中參加匹配的最末位字符的下一位字符,下面是用C#實現(xiàn)sunday的實例代碼,有需要的朋友可以參考一下
    2013-08-08
  • C#跨PC遠程調(diào)用程序并顯示UI界面

    C#跨PC遠程調(diào)用程序并顯示UI界面

    這篇文章主要為大家介紹了使用C#跨PC遠程調(diào)用程序并顯示UI界面,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05

最新評論