如何在c#中使用这个语句的三元运算符

时间:2009-11-05 04:15:56

标签: c# ternary-operator

int five = 5;
  • 当变量5等于5时,写为真
  • 当变量5不等于5时,写入false

如何使用C#在ASP.NET中为此编写语句?

11 个答案:

答案 0 :(得分:27)

int five = 5;
string answer = five == 5 ? "true" : "false";

我看到你想使用它在ASP.NET中写出值,answer字符串将保存你想要的值,随意使用它。

答案 1 :(得分:9)

几乎所有语言中的三元运算符都用作内联if语句:

Console.WriteLine((five == 5) ? 'true' : 'false');

(你不应该严格要求内在的内容,但为了清楚起见,我想包括它们。)

如果布尔值的计算结果为true,则整个表达式等于?:之间的值。如果布尔值的计算结果为false,则表达式等于:之后的值。

我不相信你可以在运算符的中间包含代码行。这些被简单地认为是在评估条件后替换整个运算符“短语”的表达式。

我是一个Java人,并不真正了解C#;也许它是不同的。但可能不是。

答案 2 :(得分:4)

你可以保持简单。比较5到5的结果是布尔值,因此以下也是可能的:

int five = 5;
Console.WriteLine((five == 5).ToString());

bool 类型的 ToString()方法已经设计为返回“True”或“False”,如果需要小写替代方法,那也很简单:< / p>

int five = 5;
Console.WriteLine((five == 5).ToString().ToLower());

如果您不需要小写,您实际上也可以完全消除ToString:

int five = 5;
Console.WriteLine(five == 5);

答案 3 :(得分:2)

在ASP.NET中,声明性(即HTML所在的位置):

<p>Is this five? <%= yourVariable == 5 ? "true" : "false"; %></p>

或者,或者在后面的代码中(即,您的C#代码和类所在的位置):

someTextBox.Text = yourVariable == 5 ? "true" : "false";

答案 4 :(得分:1)

Response.Write(five == 5 ? "True" : "False");

虽然,对于这个例子,我根本不会使用三元运算符:

Response.Write(five == 5);

答案 5 :(得分:1)

为了安全起见,你应该将你的三元表达式放在parens()中,因为三元运算符?:具有微妙的优先级,如果你不注意它会咬你。

string answer = ( (five==5) ? ("true") : ("false") );

这个示例可能并不重要,但如果三元组是复杂表达式的一部分,则优先级规则可能会使编译器以不同于您的意图的方式解释表达式。

答案 6 :(得分:0)

five==5?console.writeline('true'):console.writeline('false')

它的工作原理如下:

<if-expression> ? <code-when-if-expression-evaluates-true> : <code-when-if-expression-evaluates-false>

修改

我可能一直在想:

<%=five==5?'true':'false'%>

答案 7 :(得分:0)

另一种变化:

string message = XmlConvert.ToString(5 == five);
Console.Write(message);

答案 8 :(得分:0)

最简单的事情是 Console.WriteLine((five == 5).ToString());

答案 9 :(得分:0)

来自@ JohnK的评论使用:

int five = 5;
string answer = five == 5 ? bool.TrueString : bool.FalseString;

将布尔值true / false表示为字符串。该字段是只读的。 https://msdn.microsoft.com/en-us/library/system.boolean.truestring(v=vs.110).aspx

答案 10 :(得分:0)

在带有Eval的c#中使用三元运算符语句。 (在aspx页面中)

<span><%# Eval("productname").ToString().Length<=0 ? "<label style=\"color: red;\">Notes<span></span></label>" : "<label style=\"color: blue;\">Notes<span></span></label>"%></span>