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

标签 c# ternary-operator

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/

相关文章:

c# - 如何计算网格上两个方 block 之间的距离,包括目标方 block

c# - 如何生成具有多个集合的表的 Controller ?

c - `return x ? : 1`在C语言中是什么意思?

Android数据绑定(bind)三元运算符错误

javascript - 三元运算符在 JavaScript 中是如何求值的?

c# - CLR 中一维和二维数组的最大大小

C# 洗牌 DataGridView 行

c# - 实现接口(interface)类的几个方法-C#

c++ - C++11 中 "auto var = {condition} ? 1 : 1.0"的类型是什么?它是 double 还是整数?

c++ - 三元运算符优先级和赋值