单行If条件,没有else子句

时间:2019-04-24 18:07:59

标签: c# if-statement conditional assignment-operator conditional-operator

如何在运算符中没有其他条件的情况下写一行if条件?

示例:

  

If(count == 0){count = 2; }

我们如何像下面这样写:

  

count = count == 0?2;

如果没有其他条件,则为三元运算符。我想在没有操作员的情况下进行操作。 C#中有可用的运算符吗?

谢谢。

2 个答案:

答案 0 :(得分:4)

您不需要将elseif配对;您可以单独使用它:

if (count == 0)
        count = 2;

如果语法不符合您的喜好,可以用多种方式编写:

if (count == 0) count = 2;

if (count == 0) { count = 2; }

if (count == 0) {
    count = 2;
}

if (count == 0)
{
    count = 2;
}

正如另一位发帖人所指出的那样,您可以将可为空的int初始化为null,以与null合并运算符进行二进制交互:

int? count = null; // initialization

// ... later

count = count ?? 2;

答案 1 :(得分:2)

count = count == 0 ? 2 : count;

或更有趣的是:

using System;               
public class Program
{
    public static void Main()
    {
        foreach(int x in System.Linq.Enumerable.Range(-5, 10))
        {
            int count = x;
            bool y = count == 0 && (0 == count++ - count++);
            Console.WriteLine(count);
        }
    }
}