系统预定义委托
为了方便码农们,.Net基类库针对实际开发中最常用的情形提供了几个预定义好的委托,这些委托可以直接使用,无需再重头定义一个自己的委托类型。预定义委托在.Net基类库中使用的比较广泛,比如在Lambda表达式和并行计算中都大量地使用,需要我们予以关注起来!
public delegate void Action(); //无参数,无返回值
public delegate void Action<T>(T obj); //有指定类型参数,无返回值
public delegate void Action<T1,T2>(T1 obj1,T2 obj2); //有指定类型参数,无返回值
public delegate void Action<T1,T2,T3>(T1 obj1,T2 obj2,T3 obj3); //有指定类型参数,无返回值
public delegate void Action<T1,T2,T3,T4>(T1 obj1,T2 obj2,T3 obj3,T4 obj4); //有指定类型参数,无返回值
public delegate bool Predicate<T>(T obj); //指定类型参数,返回bool类型
C#:public delegate TResult Func<TResult>(); VB.Net:public delegate Func(Of TResult) as TResult //无参数,指定类型返回值
对应的嵌套函数: VB.net Function() true
C#:public delegate TResult Func<T,TResult>(); VB.net:public delegate Func(Of T,TResult) as TResult //有一个指定类型参数,指定类型返回值
对应的嵌套函数: VB.net Function(p) true
C#:public delegate TResult Func<T1,T2,TResult>(); VB.net:public delegate Func(Of T1,T2,TResult) as TResult //有二个指定类型参数,指定类型返回值
C#:public delegate TResult Func<T1,T2,T3,TResult>(); VB.net:public delegate Func(Of T1,T2,T3,TResult) as TResult //有三个指定类型参数,指定类型返回值
C#:public delegate TResult Func<T1,T2,T3,T4,TResult>(); VB.net:public delegate Func(Of T1,T2,T3,T4,TResult) as TResult //有四个指定类型参数,指定类型返回值