在 Console.WriteLine 上使用三元运算符
Posted
技术标签:
【中文标题】在 Console.WriteLine 上使用三元运算符【英文标题】:Using ternary operator on Console.WriteLine 【发布时间】:2013-12-14 01:39:40 【问题描述】:我需要根据条件的真假打印一些字符串。
例如:
if(i == m)
Console.WriteLine("Number is valid");
else
Console.WriteLine("Number is invalid");
如何检查此条件并使用条件运算符打印一条消息,并且只有一个Console.WriteLine
?
我在尝试:
(i == m) ? Console.WriteLine("Number is valid") : Console.WriteLine("Number is not valid");
我知道我在这里做错了。谁能告诉我正确的方法?
【问题讨论】:
您遇到的具体问题是什么? 【参考方案1】:将你的三元运算移入WriteLine
Console.WriteLine((i == m) ? "Number is valid" : "Number is not valid");
【讨论】:
【参考方案2】:试试这个:
Console.WriteLine("Number is " + ((i == m) ? "valid" : "not valid"));
【讨论】:
【参考方案3】:条件运算符是一个运算符。它返回一个值。它返回的值是来自其分支之一的值。
Console.WriteLine
是一个void
方法。它不返回值。因此,您不能将其用作条件运算符的分支之一。
顺便说一句,这个运算符被正确地称为“条件运算符”。它恰好是 a 三元运算符,这意味着它是一个接受三个参数的运算符。 以前 它运行:
-
一元
二进制
三元
四元
等等
目前 C# 中恰好只有一个三元运算符——条件运算符。 碰巧没有四元或高阶运算符。
【讨论】:
【参考方案4】:我知道这是一个老话题,但我想加两分钱。
你也可以使用string.Concat()
,就像下面的 C# 代码
Console.Writeline(string.Concat("Number is ", (i == m) ? "valid" : "not valid"));
在我看来,这是一种更清洁的方式。
【讨论】:
也许吧,但问题是关于使用三元运算符,而不是更广泛的字符串连接。 @JeremyCaney 好吧,OP 想知道如何只使用一个Console.WriteLine()
和三元运算符。我给 OP 提供了另一种方法以上是关于在 Console.WriteLine 上使用三元运算符的主要内容,如果未能解决你的问题,请参考以下文章
C#中的format和console.writeline有啥区别