常用的有delegate,Action<T>,Func<T>
声明delegate委托:delegate void intTeat(int X)
声明action<T>委托:
包含多个方法,为多播委托,返回为void,用Action<>
static void Main()
{
Action<double> operations = Mathoperations.Mult ;
operations+=Mathoperations.Square
}
声明Function<T>委托:
每个方法只包含一个方法的调用,用Func<>或Action<>
Func<double, double>[] func=
{
//委托Func<in A,Out AResult>
};
public void number(Func<double,double> func,double result)
{
//Func<>作为参数
}
func<T>和action<T>的区别:
Func<in X,OUT S>即func<>方法参数有输入值X,也有返回值S,例如 Func<T1,T2,T3,,,T8,T9>(T1 t1, T2 t2, T3 t3,,,T8,T9 result), 其中T9为返回值类型
Action<int X>即actio<>方法参数只有输入值X,例如 Action<T1,T2,T3,,,T8>(T1 t1, T2 t2, T3 t3,,,T8);最多8个参数