是否有三元运算符在c#中运行函数?

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)

谢谢.

Ser*_*rvy 9

条件运算符必须返回一个值.假设函数不会为您返回有意义的值,您应该使用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 更容易,更易读.