C#声明(选择?)
我忘了C#语句的语法,我甚至不知道名字....C#声明(选择?)
可以说你有一个布尔值,把它连接,我想设置一些文字取决于连接状态。我知道有一个简单的“一个班轮”语句,但我忘了语法,我不知道声明的类型的名称,这样我就可以谷歌搜索它。
这里是一些接近我所期待的。语法如下所示:
string title = (connected : "[Not Connected]", "[Connected]");
谢谢!
您正在寻找conditional operator:
string title = connected ? "[Connected]" : "[Not Connected]";
啊!这是它的感谢! – 2012-08-13 12:48:41
这是一个非常好的“紧凑”声明。我喜欢它,当我有机会使用它。 :) – 2012-08-13 12:51:38
它被称为Conditional/ternary operator
string title = connected ? "[Not Connected]": "[Connected]";
注意真实情况是第一位的,以便在你的榜样它实际上应该是
string title = connected ? "[Connected]": "[Not Connected]";
条件运算符或三元运算符? – 2012-08-13 12:49:31
@TackyTacky Ternary仅仅意味着“3个操作数”,它是一个有条件的操作符。 – 2012-08-13 12:50:02
两者。条件运算符是一个三元运算符,因为它需要三个操作数。 – 2012-08-13 12:50:06
I th墨你的意思是conditional operator:
// Sample changed from original code for sanity
string title = connected ? "[Connected]" : "[Not connected]";
它的正式名称是有条件的经营者,但有时您会在这里人们将其称为“三元运算符”。这只是意味着它有三个操作数(与一元运算符和二元运算) - 它并没有描述什么做可言的,IMO应该避免。选用合适的名称,描述了它是:评估条件然后评估根据该另一种表达。在C#4规范的有关行为等细节
见7.14节
'连接? “[未连接]”...“?你确定? – 2012-08-13 12:48:43
@Serge:我刚刚在问题中的代码。编辑。 – 2012-08-13 12:51:07
谢谢你的详细解答! – 2012-08-13 12:52:27
这听起来像你在谈论的ternary- conditional operator。
string title = condition ? "on true" : "on false";
注意这不是“三元运算符”很多人可能会认为,三元只是意味着有3个操作数,可以read more on Wikipedia。
在计算机科学中,三元运营商(有时被误称为叔运算符)是一个操作符有三个参数
下面是编译器真正创建的代码,它接受三个参数,或者它是否将语句转换为等价的:if(connected)text =“connected”else text =“not connected”;似乎条件运算符只是语法上的便利,并不真正代表底层代码。 – 2012-08-13 12:58:32
@TackyTacky最好的方法是寻找自己,编译一个简单的应用程序,并在ILDASM中查看它是如何构建的。有关运营商的更多信息,请阅读C#语言规范14.13。但是,是的,你是对的,这是一个便利的运营商。 – 2012-08-13 13:00:53
title= (connected == true) ? "[Connected]" : "[Not Connected]";
或
title= (connected) ? "[Connected]" : "[Not Connected]";
它可以简化为'title = connected? “[已连接]”:“[未连接]”;' – 2012-08-13 12:54:11
在C#中搜索三元运算符。它是OOPS中3个操作数的唯一操作员。 – 2012-08-13 12:55:28
[使用此运算符的好处](http://stackoverflow.com/questions/3312786/benefits-of-using-the-conditional-ternary-operator) – 2012-08-13 13:22:52