在 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; })();
但不建议这样做;在这种情况下,使用 if/else
既简单又可读。
关于c# - 是否有三元运算符可以在 C# 中运行函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17528902/