例子:
class Program
{
//定义委托类型
delegate int Weituo(int a);
static void Main(string[] args)
{
//定义委托变量
Weituo wei1;
wei1 = x => x * x;//没有手动定义确切的参数类型时,根据委托的类型来定义。返回值类型根据计算结果定义
//wei1 = y => { return y + y; };
//wei1 = (int x) => { return x / 2; };
Console.WriteLine( wei1(10));
}
}
ref参数也可以在Lambda表达式中使用。
class Program
{
//定义委托类型
delegate int Weituo(ref int a,int b);//带ref参数
delegate int SWeituo( int a, int b);//不带ref参数
static void Main(string[] args)
{
int i=5, j=10;
Weituo wei1;
SWeituo swei;
swei = (int x, int y) => { x++; return x + y; };
Console.WriteLine(swei( i, j));
Console.WriteLine("{0},{1}", i, j);
wei1 = (ref int x, int y) => { x++; return x + y; };
Console.WriteLine(wei1(ref i, j));
Console.WriteLine("{0},{1}", i, j);
}
}