代码片 1
delegate int 代理(int a, int b);
static void Main(string[] args)
{
代理 代理A = 加;
System.Console.WriteLine(代理A(12, 7));
代理 代理B = 除;
System.Console.WriteLine(代理B(12, 4));
System.Console.ReadLine();
}
static int 加(int a, int b)
{
return a + b;
}
static int 除(int a, int b)
{
return a / b;
}
代码片 2
Func和Action 关键字是C#内置的,区别是前者是有返回值
static void Main(string[] args)
{
Func<int, int, int> 代理A = 加;
System.Console.WriteLine(代理A(12, 7));
Func<int, int, int> 代理B = 除;
System.Console.WriteLine(代理B(12, 4));
System.Console.ReadLine();
}
static int 加(int a, int b)
{
return a + b;
}
static int 除(int a, int b)
{
return a / b;
}
代码片 3
简单的lambda表达式
static void Operation(Func<int, int, int> oper)
{
System.Console.WriteLine("Operation 函数内");
System.Console.WriteLine(oper(150, 15));
}
static void Main(string[] args)
{
Operation(加);
Operation(除);
Operation( (a, b) => a + b );
Operation((a, b) => a * b);
System.Console.ReadLine();
}
static int 加(int a, int b)
{
return a + b;
}
static int 除(int a, int b)
{
return a/b;
}
代码片 4
static void Main(string[] args)
{
Func<int, int, int> foo = 加;
foo += 除;
foo += (a, b) =>{ System.Console.WriteLine("cheng"); return a* b;} ;
//会依次触发三个函数,返回值为最后一个参数的返回值
int rst = foo(120, 10); //rst = 1200
System.Console.WriteLine(rst);
System.Console.ReadLine();
}
static int 加(int a, int b)
{
System.Console.WriteLine("jia");
return a + b;
}
static int 除(int a, int b)
{
System.Console.WriteLine("jian");
return a / b;
}