【发布时间】:2011-02-15 11:02:24
【问题描述】:
使用三元运算符,可以执行以下操作(假设 Func1() 和 Func2() 返回一个 int:
int x = (x == y) ? Func1() : Func2();
但是,有没有办法做同样的事情,而不返回一个值?例如,类似(假设 Func1() 和 Func2() 返回 void):
(x == y) ? Func1() : Func2();
我意识到这可以使用 if 语句来完成,我只是想知道是否有办法做到这一点。
【问题讨论】:
-
抱歉吹毛求疵,但正确的名称是条件运算符msdn.microsoft.com/en-us/library/aa691313(VS.71).aspx
-
@Brian:在同一篇文章中,“有时也称为三元运算符”。真的,两者都被使用了。
-
@Nelson - 和符号也可以称为二元运算符,增量运算符也可以称为一元运算符?是的......但它仍然不是一个正确的命名方式,尽管它通常是唯一已知的三元运算符。 (还有更多吗?好问题。)
-
是的,三元(以及相关的一元、二元等)是更通用的名称。因此,条件运算符是三元运算符(如果语言语法没有提供另一种,则为“三元运算符”),但三元运算符不一定是条件运算符。我认为在编程语言的上下文中,两者通常会被理解为同一个意思。除非有更多,就像你说的那样。
-
在 Google 中搜索“C#“三元运算符”和“C#“条件运算符”返回的结果数量相似,因此看起来它们的使用频率大致相同。
标签: c# .net methods ternary-operator