相关疑难解决方法(0)

C#Lambda表达式:我为什么要使用它们?

我已经快速阅读了Microsoft Lambda Expression文档.

这种例子帮助我更好地理解了:

delegate int del(int i);
del myDelegate = x => x * x;
int j = myDelegate(5); //j = 25
Run Code Online (Sandbox Code Playgroud)

不过,我不明白为什么会有这样的创新.它只是一种在"方法变量"结束时死亡的方法,对吗?为什么我应该使用它而不是真正的方法?

c# lambda c#-3.0

302
推荐指数
10
解决办法
22万
查看次数

179
推荐指数
2
解决办法
7万
查看次数

手动创建委托与使用Action/Func委托

今天我在考虑宣布这个:

private delegate double ChangeListAction(string param1, int number);
Run Code Online (Sandbox Code Playgroud)

但为什么不用这个:

private Func<string, int, double> ChangeListAction;
Run Code Online (Sandbox Code Playgroud)

或者如果ChangeListAction没有返回值,我可以使用:

private Action<string,int> ChangeListAction;
Run Code Online (Sandbox Code Playgroud)

那么使用delegate关键字声明委托的优势在哪里?

是因为.NET 1.1,随着.NET 2.0的出现Action<T>和.NET 3.5的出现Func<T>

c# delegates action func

67
推荐指数
6
解决办法
2万
查看次数

42
推荐指数
4
解决办法
2万
查看次数

C#中的代表

我在理解C#中的委托如何工作方面遇到了一些麻烦.我有很多代码示例,但我仍然无法正确掌握它.

有人能用"普通英语"向我解释一下吗?当然!代码的例子会有所帮助,但我认为我需要更多关于它如何/为何起作用的描述.

编辑:

嗯,问题是:为什么代表们工作?什么是整个过程的"流程图"?

使用代表的先决条件是什么?

我希望这会使问题更清楚.

c# delegates

23
推荐指数
3
解决办法
1万
查看次数

委托方法与一般方法

我想知道使用委托方法和使用常规方法[无代表]之间的区别.

例如 :


有代表:

delegate void DelMethod(string str);

static void Method(string str)
{
    Debug.WriteLine(str);
}
Run Code Online (Sandbox Code Playgroud)

用法:

DelMethod dm = new DelMethod(Method);
dm(string);
Run Code Online (Sandbox Code Playgroud)

没有代表:

static void Method(string str)
{
    Debug.WriteLine(str);
}
Run Code Online (Sandbox Code Playgroud)

用法:

Method(string)
Run Code Online (Sandbox Code Playgroud)

这两个有什么不同?

没有委托的方法更小更容易.但我发现编码人员经常使用委托方法.

这背后的原因是什么?

c# methods delegates

11
推荐指数
2
解决办法
8409
查看次数

代表,Lambdas,Action,Func,匿名函数

我只想验证我对以下内容的理解

  • 委托 - 方法签名
  • Lambdas - 匿名函数
  • 匿名函数 - 就是这样
  • 操作 - 不返回任何内容的匿名函数
  • Func - 返回某些内容的匿名函数

嗯...他们都做类似的事情,你如何定义和知道何时使用每个?

对不起,我不好解释

c# lambda delegates anonymous-function

5
推荐指数
1
解决办法
1797
查看次数