单行 If 条件 without else 子句 [duplicate]

Single line If condition without else clause [duplicate]

提问人:Himmat Singh Dulawat 提问时间:4/25/2019 最后编辑:Lance U. MatthewsHimmat Singh Dulawat 更新时间:4/25/2019 访问量:11227

问:

如何在运算符中没有 else 的情况下写一行 If 条件?

例:

如果(count==0) { count=2;

我们怎么能像下面这样写上面:

count=计数==0?2;

作为三元运算符需要的 if else 条件。我想在没有三元运算符的情况下做到这一点。C# 中是否有任何运算符可用?

谢谢。

C# IF- 语句 赋值运算 条件运算符

评论

1赞 Maximilian Burszley 4/25/2019
你不能。只需使用语句即可。if
4赞 Lance U. Matthews 4/25/2019
您开始使用的是“没有 ”的单行语句。这有什么问题,或者三元运算符有什么问题?这些是 C# 提供的执行此操作的方法,因此这就是您使用的。if (count==0) { count=2; }ifelse
3赞 Lance U. Matthews 4/25/2019
可能重复 ? 运算符而不使用 else-part 或 使用三元运算符而不使用赋值或返回 或者是否可以在三元表达式上只放一个选项?

答:

3赞 Amy B 4/25/2019 #1
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);
        }
    }
}

评论

3赞 Derek Williams 4/25/2019
为什么不使用三元运算符?这绝对需要什么?
7赞 Maximilian Burszley 4/25/2019 #2

您不需要与 ;您可以单独使用它: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;
}

正如另一张海报所指出的,您可以使用可为 null 的 int 进行初始化,以便与 null 合并运算符进行二进制交互:null

int? count = null; // initialization

// ... later

count = count ?? 2;