有没有办法在定义后立即执行lambda表达式?
换句话说(无效的C#代码):
(() => { Console.WriteLine("Hello World"); }).Invoke();
Run Code Online (Sandbox Code Playgroud)
Tej*_*ejs 40
当然.
new Action(() => { Console.WriteLine("Hello World"); })();
Run Code Online (Sandbox Code Playgroud)
这应该够了吧.
小智 17
另一个"选项",其他两个答案只是略有不同:
((Action)(() => { Console.WriteLine("Hello World"); }))();
Run Code Online (Sandbox Code Playgroud)
原因,直接取自phoog的评论:
...你没有告诉编译器你是否想要一个
Action
或一个Expression<Action>
.如果你投的是lambda表达式Action
,你就可以调用来调用它,或者使用方法调用的语法()调用它.
它肯定会变得丑陋,我不知道这个形式有用的地方,因为它不能用于没有名字的递归...
归档时间: |
|
查看次数: |
10117 次 |
最近记录: |