在Console.WriteLine中使用三元运算符

3

我需要根据条件的真假打印一些字符串。

例如:

    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");

我知道这里做得不对,请问有人能告诉我正确的方法吗?


你遇到了什么确切的问题? - John Saunders
4个回答

14

试一下这个:

    Console.WriteLine("Number is " + ((i == m) ? "valid" : "not valid"));

2
我知道这是一个老话题,但我想发表我的意见。
您还可以像下面的C#代码一样使用 string.Concat()
Console.Writeline(string.Concat("Number is ", (i == m) ? "valid" : "not valid"));

在我看来,这是一种更加清晰的方法。


也许吧,但问题是关于使用三元操作符,而不是更广泛地涉及字符串连接。 - Jeremy Caney
@JeremyCaney 好的,原帖想知道如何使用三元运算符仅使用一个 Console.WriteLine()。我给出了另一种方法。 - Sedatyf

1
将您的三元运算符移至 WriteLine 内。
Console.WriteLine((i == m) ? "Number is valid" : "Number is not valid");

1
条件运算符是一个操作符。它返回一个值,这个值是来自于它的其中一个分支。 Console.WriteLine 是一个 void 方法。它不返回任何值。因此,你不能将它作为条件运算符的其中一个分支。
顺便说一下,这个操作符被正确地称为“条件运算符”。它恰好是一个三元操作符,意味着它是一个接受三个参数的操作符。 它可以运行:
  1. 一元
  2. 二元
  3. 三元
  4. 四元
等等。
目前在 C# 中只有一个三元运算符——条件运算符。 目前没有四元或更高阶的运算符。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接