如何在c#中使用这个语句的三元运算符
int five = 5;
- 当变量5等于5时,写入true
- 当变量5不等于5时,写入false
如何使用C#在ASP.NET中为此编写语句?
int five = 5; string answer = five == 5 ? "true" : "false";
我看到你想使用它在ASP.NET中写出值, answer
字符串将保存你想要的值,随你使用它。
几乎所有语言中的三元运算符都作为内联if语句:
Console.WriteLine((five == 5) ? 'true' : 'false');
(你不应该严格要求内在的内容,但为了清楚起见,我想包括它们。)
如果布尔值计算为true,那么整个表达式等于?
之间的值?
并且:
。 如果布尔值的计算结果为false,则表达式等于:
之后的值。
我不相信你可以在运算符的中间包含代码行。 这些应该是表达式,一旦评估条件,它就会替换整个运算符“短语”。
我是一个Java人,并不真正了解C#; 也许它是不同的。 但可能不是。
你可以保持它非常简单。 比较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);
在ASP.NET中,声明性(即HTML所在的位置):
Is this five? <%= yourVariable == 5 ? "true" : "false"; %>
或者,替代地,在后面的代码中(即,您的C#代码和类所在的位置):
someTextBox.Text = yourVariable == 5 ? "true" : "false";
Response.Write(five == 5 ? "True" : "False");
但是,对于这个例子,我根本不会使用三元运算符:
Response.Write(five == 5);
为了安全起见,你应该把你的三元表达式放在parens()中,因为三元运算符?:具有微妙的优先级,如果你不注意它会咬你。
string answer = ( (five==5) ? ("true") : ("false") );
这个示例可能并不重要,但如果三元组是复杂表达式的一部分,则优先级规则可能会使编译器以不同于您的意图的方式解释表达式。
five==5?console.writeline('true'):console.writeline('false')
它的工作原理如下:
? :
编辑:
我可能有什么想法:
<%=five==5?'true':'false'%>
另一种变化:
string message = XmlConvert.ToString(5 == five); Console.Write(message);
最简单的是Console.WriteLine((five == 5).ToString());
来自@ 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
在带有Eval的c#中使用三元运算符语句。 (在aspx页面中)
<%# Eval("productname").ToString().Length<=0 ? "" : ""%>