【发布时间】:2015-07-19 07:56:45
【问题描述】:
说我有这行代码:
Action<int> square = number => Console.WriteLine(number * number);
虽然我知道动态创建一个方法很方便,但如果您只需要调用一次 lamda 表达式,这样做是否会获得任何性能?
另外,假设我对WriteLine之前的值做了更多的事情:
Action<int> square = number => {
number += 10;
Console.WriteLine(number * number);
};
我可以通过将 10 添加到 number 来解决这个非常简单的问题,然后在没有 lambda 表达式的情况下执行 number * number。谁能给我一个很好的例子/什么时候使用这个表达式?
【问题讨论】:
-
"谁能给我一个很好的例子/情况什么时候使用这个表达式?" - 不,你的 lamda 表达式没有意义使用
-
通常您创建方法来简化代码并为某些功能赋予一些有意义的名称。调用方法多少次都没有关系。创建内联方法总是使代码更复杂,更难理解和维护
-
开发者大多倾向于使用Action委托作为异步范式的回调。
-
@JenishRabadiya 即使没有异步范式。
-
@BinkanSalaryman:啊哈。这种解释证实了我的重复投票:)(换句话说,这实际上是关于何时以及为什么使用方法指针,而不是以传统方式调用某些代码。)