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