在 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 上使用三元运算符的主要内容,如果未能解决你的问题,请参考以下文章

Console.WriteLine为空

C#中的format和console.writeline有啥区别

Console.Writeline 对性能的影响

如何从网站上阅读? C# [重复]

如何使用 Console.WriteLine 对齐列中的文本?

C#总结-从抚摸“Console.WriteLine”开始的逐渐深入