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;
posted @ 2012-09-10 14:06  Caius.Walt.Wang  阅读(164)  评论(0编辑  收藏  举报