ome*_*ega 2 c# ternary-operator
在C#我知道你可以做这样的事情:
int number = true ? 1 : 0;
Run Code Online (Sandbox Code Playgroud)
这将返回左侧或右侧,具体取决于是否Boolean为真.
但有没有办法做同样的事情,而是运行一个函数,而不是返回一个值?像这样的东西:
这不起作用(我得到多个语法错误)
WPS.EDIT_MODE ? ExecuteEditMode() : ExecutePublicMode();
Run Code Online (Sandbox Code Playgroud)
谢谢.
条件运算符必须返回一个值.假设函数不会为您返回有意义的值,您应该使用if语句来执行此操作:
if(someCondition)
doA();
else
doB();
Run Code Online (Sandbox Code Playgroud)
虽然从技术上讲你可以使用匿名函数来做到这一点,如果你真的想要:
int number = someCondition ?
new Func<int>(() => { doA(); return 0; })() :
new Func<int>(() => { doB(); return 1; })();
Run Code Online (Sandbox Code Playgroud)
但是没有建议; if/else对于这种情况,使用an 更容易,更易读.
| 归档时间: |
|
| 查看次数: |
892 次 |
| 最近记录: |