欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C#教程

當(dāng)前位置:主頁 > 軟件編程 > C#教程 >

c#中的泛型委托詳解

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C#教程|點(diǎn)擊: 次

今天學(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); //聲明一個委托
 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) {    //實(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é)果:

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

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

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

上一篇:C#生成隨機(jī)數(shù)功能示例

欄    目:C#教程

下一篇:C#文件上傳的簡單實(shí)現(xiàn)

本文標(biāo)題:c#中的泛型委托詳解

本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/6025.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有