在委托这个地方卡了很久,在网上也看了很多文章,基本上都是说的委托的语法,偶尔有介绍使用场景,但是还是一直没弄明白,总有点迷迷糊糊的,做技术就应该吧问题搞的明明白白,要不然还不如不搞,希望大家给讲解下这个问题。谢谢了
比如下面的代码
static Func<int, int, int> CalculateHandler = (x, y) => x + y;
static void Main(string[] args)
{
var result = CalculateHandler(5, 10);
Console.WriteLine(result);
}
直接写个方法不也是很简短么,而且还少了个变量
static int Calculate(int x, int y)
{
return x + y;
}
也许你要说,以后你增加减法,除法更多的运算的时候可以复用...
我开头已经说了“只有一个方法的时候”
这只是举例**怎么做委托**,至于**要不要用委托**得你自己取舍,不是为了用委托而委托。
我就是想知道怎么取舍,特别是看到Lambda表达式的那些例子的时候更晕
delegate int del(int i);
static void Main(string[] args)
{
del myDelegate = x => x * x;
int j = myDelegate(5); //j = 25
}
不是说的委托就是为了解耦么,本来应该是把运算提取出来作为一个方法,现在又写会到main方法中,这不是本末倒置么?
委托相当于C语言的函数指针。
常用于事件处理