考虑这段代码:
Func<int, bool> TestGreaterThanOne = delegate(int a) {
if (a > 1) return (true);
else return(false);
};
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,我无法删除"else return(false)"语句 - 编译器警告并非所有代码路径都返回一个值.但是在下面的代码中,使用了lambda ...
Func<int, bool> TestGreaterThanOne = a => a > 1;
Run Code Online (Sandbox Code Playgroud)
我没有"else"语句 - 没有编译器警告,逻辑按预期工作.
这里有什么机制可以让我在lambda中没有"else"语句?
Ray*_*hen 21
因为在你的lambda速记中,也没有if语句.你的lambda速记相当于
Func<int, bool> TestGreaterThanOne = delegate(int a) {
return (a > 1);
};
Run Code Online (Sandbox Code Playgroud)
因此,所有代码路径都返回一个值.
| 归档时间: |
|
| 查看次数: |
516 次 |
| 最近记录: |