【发布时间】:2013-03-26 10:35:23
【问题描述】:
在使用现有框架时,有时您需要传入一个不执行任何操作的操作委托,通常是原始开发人员添加的扩展点。示例:
var anObject = new Foo(() => { });
而且大概 Foo 对象会在某个时候调用这个委托。我的目标是消除 { } 的使用,因为我的风格规定 { } 需要单独使用,并且需要单独的行,而且我有点强迫症并且讨厌如果我不必那么冗长。
在处理返回值的操作时,这很简单——您可以提供表达式而不是语句(从而消除大括号。)示例:
var anObject = new Foo(() => string.Empty);
所以,我想问题是两个部分......
.NET 是否有任何类型的默认空操作? 除了 { } 之外,是否有用于向 lambda 提供空表达式的语法糖?
我目前倾向于的解决方案是在前面的赋值中定义委托,以避免在函数调用中使用 lambda 表达式。
【问题讨论】:
标签: c# .net lambda delegates syntactic-sugar