C#语句(选择?)

Jan*_*cci 2 c# syntax

我忘记了C#语句的语法,我甚至不知道这个名字......

假设你有一个布尔值,调用它连接,我想根据连接状态设置一些文本.我知道有一个简单的"单线"声明,但我忘了语法,我不知道声明类型的名称,所以我可以谷歌搜索它.

这里有一些接近我正在寻找的东西.语法如下所示:

string title = ( connected : "[Not Connected]", "[Connected]");
Run Code Online (Sandbox Code Playgroud)

谢谢!

Dan*_*rth 10

您正在寻找条件运算符:

string title = connected ? "[Connected]" : "[Not Connected]";
Run Code Online (Sandbox Code Playgroud)


Man*_*rin 5

它被称为条件/三元运算符

string title = connected ? "[Not Connected]": "[Connected]";
Run Code Online (Sandbox Code Playgroud)

注意真实条件首先出现,因此在您的示例中它实际应该是

string title = connected ? "[Connected]": "[Not Connected]";
Run Code Online (Sandbox Code Playgroud)

  • @hvd:它是*目前*唯一的三元运算符,但这仍然是使用它作为名称的一个不好的理由.这就像调用`protected`"九字母访问修饰符"...... (5认同)

Jon*_*eet 5

我认为你的意思是条件运算符:

// Sample changed from original code for sanity
string title = connected ? "[Connected]" : "[Not connected]";
Run Code Online (Sandbox Code Playgroud)

它的正确名称是条件运算符,但有时你会将它称为"三元运算符".这只是意味着它有三个操作数(与一元运算符和二元运算) -它并没有描述什么它的一切,IMO应该避免.使用其正确的名称,描述它的用途:评估条件,然后根据该条件评估另一个表达式.

有关行为等的详细信息,请参阅C#4规范的第7.14节.