【发布时间】:2012-04-17 20:09:52
【问题描述】:
有没有办法在定义后立即执行 lambda 表达式?
换句话说(无效的 C# 代码):
(() => { Console.WriteLine("Hello World"); }).Invoke();
【问题讨论】:
-
等等……什么?为什么是 lambda 表达式?
-
你的代码无效的原因是你没有告诉编译器你想要
Action还是Expression<Action>。如果您将该 lambda 表达式转换为Action,您将能够对其调用Invoke或使用方法调用语法()来调用它。 -
我的想象力可能让我失望了,真的有必要这样做吗?
-
知道了。现在说得通了。 @Tejs 的回答非常清楚。
-
这是一种更实用的代码形式,它清楚地定义了当前方法的哪一部分仅用于一项任务。不一定更有效,但我已经使用它来隔离代码,而无需将其分解为具有所有范围问题的新函数。