如何在C#中使用三元运算符

问题描述 投票:0回答:12
int number = 5;
  • number等于5时,写true
  • number不等于5时,写为false

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

c# conditional-operator
12个回答
33
投票
int five = 5;
string answer = five == 5 ? "true" : "false";

我看到您想用它在 ASP.NET 中写出值,

answer
字符串将保存您想要的值,请随意使用。


9
投票

几乎每种语言中的三元运算符都充当内联 if 语句:

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

(您不应该严格需要内部括号,但为了清楚起见,我喜欢将它们包括在内。)

如果布尔值的计算结果为 true,则整个表达式等于

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

我不相信您可以在运算符中间包含代码行。这些只是应该是在评估条件后替换整个运算符“短语”的表达式。

我是一名 Java 人员,不太懂 C#;也许是不同的。但可能不会。


4
投票

你可以让它变得非常简单。比较 5 到 5 个布尔值结果,因此以下情况也是可能的:

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

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

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

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

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

2
投票
在 ASP.NET 中,声明式(即 HTML 的位置):

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

或者,在代码隐藏中(即 C# 代码和类所在的位置):

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

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

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

Response.Write(five == 5);
    

1
投票
为了安全起见,您应该将三元表达式放在括号 () 中,因为三元运算符 ?: 具有微妙的优先级,如果您不看,可能会影响您。

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

对于这个示例来说,这可能并不重要,但如果三元数是复杂表达式的一部分,优先级规则可能会使编译器对表达式的解释与您的预期不同。


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'%>


    


0
投票
另一种变化:

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

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


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


0
投票
在 C# 中使用三元运算符语句与 Eval。 (在aspx页面)

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

0
投票
我发现这个问题是因为我正在寻找 getter 的语法,但在这里没有找到完整的答案。但答案有助于做出正确的设计。我发布了,也许有人也需要它:


get { return number == 5 ? "true" : "false"; }


    

© www.soinside.com 2019 - 2024. All rights reserved.