在()似乎很傻.有没有更好的办法?
例如:
ExternalId.IfNotNullDo(() => ExternalId = ExternalId.Trim());
Cha*_*ers 43
有点!镇上有一个新的成语,这很好,在某些情况下可能会帮助你.它并不完全是你想要的,但有时候我觉得你会喜欢它.
由于下划线("_")是一个有效的C#标识符,因此在计划无论如何都要忽略参数的情况下,将它用作lambda的参数名称变成了一种常见的习惯用法.如果其他程序员知道这个习语,他们会立即知道该参数是无关紧要的.
例如:
ExternalId.IfNotNullDo( _ => ExternalId=ExternalId.Trim());
Run Code Online (Sandbox Code Playgroud)
易于打字,传达您的意图,也更容易在眼睛上.
当然,如果你将lambda传递给需要表达式树的东西,这可能不起作用,因为现在你传递的是单参数lambda而不是no-parameter lambda.
但在许多情况下,这是一个很好的解决方案.
Mar*_*ell 23
对于lambda,不,你需要 () =>
是代表还是表达?对于代表来说,另一种选择是delegate {...}.根据情况,这可能是也可能不是所希望的.这是更多的关键,当然......
在某些情况下(不是这个)你可以直接使用目标方法 - 即
ExternalId.IfNotNullDo(SomeMethod);
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 19
不,没有.Lambda表达式针对单个参数情况进行了优化(就语法而言).
我知道C#团队感受到了你的痛苦,并试图寻找替代方案.是否会有一个是另一回事.
| 归档时间: |
|
| 查看次数: |
10303 次 |
| 最近记录: |