我希望使用单行if语句和?
运算符来调用一个void方法并返回结果。
完整的语句如下:
if (failPaths.Count == paths.Count) {
return;
}
我知道我可以这样做:if (failPaths.Count == paths.Count) return;
但我只是想看看如何使用?
运算符来完成它。
我希望使用单行if语句和?
运算符来调用一个void方法并返回结果。
完整的语句如下:
if (failPaths.Count == paths.Count) {
return;
}
我知道我可以这样做:if (failPaths.Count == paths.Count) return;
但我只是想看看如何使用?
运算符来完成它。
你提到的条件运算符 (conditional operator) 也就是 ?
运算符无法实现此功能。
事实上,条件运算符只评估条件并从两个表达式中返回第一个或第二个 - 因此它可以被视为表达式本身。
但在你的例子中,if
语句不是用于 表达式评估,而是用于 控制流程。
在C#中,没有办法实现你想要达到的目标。
三元运算符要求true
和false
值都评估为赋值表达式(或方法/属性返回值)左侧的类型。
由于没有明确的返回/设置void
的方式,因此在C#中无法实现此功能。
我想你是在说“?:”运算符。
不幸的是,没有办法这样做,因为编译器期望有“else”条件。
(condition)?true:else
if
的替代品,它只是根据条件获取值的快捷方式,应该只在它能提高可读性时使用。if
语句更为强大,应该用于流程控制和当条件运算符过于繁琐时。 - Tim Schmelter