【问题标题】:Using ternary operator on Console.WriteLine在 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");

我知道我在这里做错了。谁能告诉我正确的方法?

【问题讨论】:

  • 您遇到的具体问题是什么?

标签: c# ternary-operator conditional-operator


【解决方案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 三元运算符,这意味着它是一个接受三个参数的运算符。 以前 它运行:

      1. 一元
      2. 二进制
      3. 三元
      4. 四元

      等等

      目前 C# 中恰好只有一个三元运算符——条件运算符。 碰巧没有四元或高阶运算符。

      【讨论】:

        【解决方案4】:

        我知道这是一个老话题,但我想加两分钱。

        你也可以使用string.Concat(),就像下面的 C# 代码

        Console.Writeline(string.Concat("Number is ", (i == m) ? "valid" : "not valid"));
        

        在我看来,这是一种更清洁的方式。

        【讨论】:

        • 也许吧,但问题是关于使用三元运算符,而不是更广泛的字符串连接。
        • @JeremyCaney 好吧,OP 想知道如何只使用一个 Console.WriteLine() 和三元运算符。我给 OP 提供了另一种方法
        猜你喜欢
        • 2020-03-14
        • 2023-03-05
        • 1970-01-01
        • 1970-01-01
        • 2019-10-08
        • 2013-07-06
        • 1970-01-01
        • 2011-09-10
        相关资源
        最近更新 更多