泛型委托和多播委托
来源:互联网 发布:全国最好的python 编辑:程序博客网 时间:2024/06/07 03:26
1.泛型委托,返回参数传T,参数传一个委托类型的参数TResult
class Program {public delegate int DelCompare<T>(T t1, T t2);static void Main(string[] args)
{ int[] nums = { 1, 2, 3, 4, 5 };
int max = GetMax<int>(nums, Compare1);
Console.WriteLine(max);
string[] names = { "abcdefg", "fdsfds", "fdsfdsfdsfdsfdsfdsfdsfsd" };
string max1 = GetMax<string>(names, (string s1, string s2) => {
return s1.Length - s2.Length; });
Console.WriteLine(max1);
Console.ReadKey(); }
public static T GetMax<T>(T[] nums, DelCompare<T> del) {
T max = nums[0];
for (int i = 0; i < nums.Length; i++) {
//要传一个比较的方法
if (del(max, nums[i]) < 0) {
max = nums[i]; } }
return max; }
public static int Compare1(int n1, int 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");
0 0
- 泛型委托和多播委托
- 委托实例和多播委托
- c# 委托和多播委托
- 委托、lamda表达式..委托概念-匿名函数-泛型委托-Lamda表达式-多播委托
- 委托(泛型委托、lamda表达式、用委托进行窗体传值、多播委托
- C#自学(一)委托(delegate)、委托泛型、多播委托
- 委托及多播委托
- 委托(2.多播委托)
- 委托(五):多播委托
- 委托_多播委托
- 多播委托
- 多播委托
- 多播委托实例
- 多播委托
- 多播委托
- 委托多播
- 什么是多播委托?
- GCDMulticastDelegate多播委托
- 人生的意义
- nyoj34韩信点兵
- socket编程
- Java中final、finally、finalize的区别
- 避开基本类型数组转换列表陷阱
- 泛型委托和多播委托
- Painter's Problem【高斯消元】
- hadoop 之 InputFormat类 --- KeyValueTextInputFormat 实例
- ORA-01031: insufficient privileges
- iOS: 从ipa提取图片资源文件及从iOS设备提取ipa文件的方法
- 杭电 1166 敌兵布阵
- noip2013 华容道 (bfs+spfa)
- Android:Gallery,ImageSwitcher 和GridView用法
- 代理模式 Proxy Pattern