20120906 委托及事物
委托:
delegate void defunction ( int parm1, int parm2 ); void function ( int parm1, int parm2 ) { ... ; } defunction fun = new defunction(function );
fun( 12, 43 );
Action<T> 与Func<T>委托:
Action<T>委托表示一个没有返回值的委托,例如Action<in T>, Action<in T1, inT2>;
Func<T>委托表示一个返回值为T的委托,例如Func<in T1,out T2 >, Func<in T1,in T2 , out T3>, Func<out T>;
Func<T>特可以定义一个委托变量:
Func<int, int> parms = { fun1;
fun2;
};
多播委托:
int fun1(int) { .... } int fun2(int) { .... } Func<int, int> parms = fun1; //parms == fun1 parms += fun2; //parms == fun1执行完后继续fun2 parms -= fun1; //parms == fun2
匿名委托:
Func<int, int> parms = delegate( int day ) { return day + 4; };
lam委托:=>
Func<int, int> parms = ( int day ) >= { return day + 4; };
Func<int, int> parms = day >= {
int a = 90; return day + 4 + a; };
Func<int, int> parms = day >= day + 4 + a;