C#中的泛型委托
为什么使用泛型委托
普通委托有一个问题,由于入口参数类型不同,委托没法使用,就不得不再定义一个委托来代表这个方法,因为类型的数目是无限多的,定义无数多个委托显然行不通,这时就要使用到泛型。
泛型委托的写法
public delegate boo Predicate<T>(T obj);
LINQ中的泛型委托
有返回值的委托
mscorlib.dll中定义了含有最多8个参数的委托 Func
System.Core.dll中的定义了最多16个参数的委托
Func<T,TResult>
public delegate TResult GeneralMethod<in T, out TResult>(T arg);
无返回值的委托
Action
public delegate void Action<in T>(T obj);