泛型委托和多播委托

1.泛型委托,返回参数传T,参数传一个委托类型的参数TResult

class Program
   {
public delegate int DelCompare<T>(T t1, T t2);
       static void Main(string[] args)    
  {           int[] nums = { 12345 };
           int max = GetMax<int>(numsCompare1);
          Console.WriteLine(max);           
string[] names = { "abcdefg""fdsfds""fdsfdsfdsfdsfdsfdsfdsfsd" };
           string max1 = GetMax<string>(names, (string s1string s2=>           {             
 return s1.Length - s2.Length;           });          
Console.WriteLine(max1);         
 Console.ReadKey();       }    
  public static T GetMax<T>(T[] numsDelCompare<T> del)       {  
        T max = nums[0];         
 for (int i = 0i < nums.Lengthi++)           {    
          //要传一个比较的方法             
if (del(maxnums[i]) < 0)               {  
                max = nums[i];               }           }    
      return max;       }     
  public static int Compare1(int n1int n2)       {           return n1 - n2;       }   }

2.总共3种委托形式delegate、Action、Func<TResult>已经定义好的泛型委托,窗体传值就使用委托,Action无返回值的委托HMGNV-WCYXV-X7G9W-YCX63-B98R2

3、多播委托

一个委托指向多个方法,执行委托类型的对象时,它指向的方法一起执行

public delegate void DelTest();

DelTest method=Test1;

method+=Test2;

method+=Test3;

method();//一起执行3个方法

public void Test1()

{

  Console.Write("T1");

}


public void Test2()

{

  Console.Write("T2");

}


public void Test3()

{

  Console.Write("T3");

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值