C#单行if语句与void返回

5

我希望使用单行if语句和?运算符来调用一个void方法并返回结果。

完整的语句如下:

if (failPaths.Count == paths.Count) {
    return;
}

我知道我可以这样做:if (failPaths.Count == paths.Count) return;但我只是想看看如何使用?运算符来完成它。


你不能这样做。它们不是相同的。一个是语句,另一个是表达式。 - Dennis_E
条件运算符并不是if的替代品,它只是根据条件获取值的快捷方式,应该只在它能提高可读性时使用。if语句更为强大,应该用于流程控制和当条件运算符过于繁琐时。 - Tim Schmelter
3个回答

11

你提到的条件运算符 (conditional operator) 也就是 ? 运算符无法实现此功能。

事实上,条件运算符只评估条件并从两个表达式中返回第一个或第二个 - 因此它可以被视为表达式本身。

但在你的例子中,if 语句不是用于 表达式评估,而是用于 控制流程


3

在C#中,没有办法实现你想要达到的目标。

三元运算符要求truefalse值都评估为赋值表达式(或方法/属性返回值)左侧的类型。

由于没有明确的返回/设置void的方式,因此在C#中无法实现此功能。


0

我想你是在说“?:”运算符。

不幸的是,没有办法这样做,因为编译器期望有“else”条件。

(condition)?true:else

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接