在C#
我知道你可以做这样的事情:
int number = true ? 1 : 0;
这取决于是否Boolean
为真返回左侧或右侧。
但是有没有办法做同样的事情,而是运行一个函数而不是返回一个值?像这样的东西:
这不起作用(我收到多个语法错误)
WPS.EDIT_MODE ? ExecuteEditMode() : ExecutePublicMode();
谢谢。
在C#
我知道你可以做这样的事情:
int number = true ? 1 : 0;
这取决于是否Boolean
为真返回左侧或右侧。
但是有没有办法做同样的事情,而是运行一个函数而不是返回一个值?像这样的东西:
这不起作用(我收到多个语法错误)
WPS.EDIT_MODE ? ExecuteEditMode() : ExecutePublicMode();
谢谢。
条件运算符必须返回一个值。假设这些函数都不会为您返回一个有意义的值,您应该使用一个if
语句来做到这一点:
if(someCondition)
doA();
else
doB();
尽管从技术上讲,如果您真的想要,您可以使用匿名函数来执行此操作:
int number = someCondition ?
new Func<int>(() => { doA(); return 0; })() :
new Func<int>(() => { doB(); return 1; })();
但不建议这样做;在这种情况下,使用 anif/else
更容易且更具可读性。
如果两个函数都返回一个int
,是的。
三元运算符是关于返回值的。不返回值没有意义。
条件运算符 (?:) 根据布尔表达式的值返回两个值之一。
http://msdn.microsoft.com/en-us/library/ty67wk28(v=vs.80).aspx