C# 在else-if条件下使用null合并运算符

C# 在else-if条件下使用null合并运算符,c#,C#,是否可以使用空合并运算符或任何其他简化代码简化以下条件 int? c,a,b; if(a!=null) { c = a; } else if(b!=null) { c = b; } else { c = null; } 提前谢谢 c = a ?? b ?? null; 尽管如果你的捕获是空的,那么你只需要 c = a ?? b; 编辑:正如其他用户所说的,如果您与他们一起工作,那么int可以为null(int?)是很重要的 尽管如果你的捕获是空的,那么你只需要 c = a ?

是否可以使用空合并运算符或任何其他简化代码简化以下条件

int? c,a,b;
if(a!=null)
{
  c = a;
}
else if(b!=null)
{
  c = b;
}
else
{
  c = null;
} 
提前谢谢

c = a ?? b ?? null;
尽管如果你的捕获是空的,那么你只需要

c = a ?? b;
编辑:正如其他用户所说的,如果您与他们一起工作,那么int可以为null(int?)是很重要的

尽管如果你的捕获是空的,那么你只需要

c = a ?? b;

编辑:正如其他用户所说的,如果您与他们一起工作,那么int可以为null(int?)是很重要的

你的意思是:

int? c = a ?? (b ?? null)
注意,根据if-else语句,
c
必须是
int?
类型。出于同样的原因,
a
b
都属于
int?
类型

因此,由于
b
可能是
null
,相同的表达式可以重写为:

int? c = a ?? b;

你的意思是:

int? c = a ?? (b ?? null)
注意,根据if-else语句,
c
必须是
int?
类型。出于同样的原因,
a
b
都属于
int?
类型

因此,由于
b
可能是
null
,相同的表达式可以重写为:

int? c = a ?? b;

假设它们都是类型
int?

int? c = a ?? b; //no need for an explicit null. If b is null so will c be.

因为如果它们都是
int类型,那么这个问题就没有意义了

int? c = a ?? b; //no need for an explicit null. If b is null so will c be.

因为如果它们属于
int

类型,那么这个问题就没有意义了,通常
c=a??b
就可以了。但是
int
不可为空,所以我不确定您的示例中发生了什么。我只是想说John做了什么。
int c=a??B默认值(int)0
而不是
null
,或者只是
int,那么code>可能就是您想要的?c=a??b
如果你想
c
可以为空。对不起,我忘了提到c是一个可以为空的整数。我现在已经正常更新了
c=a??b
就可以了。但是
int
不可为空,所以我不确定您的示例中发生了什么。我只是想说John做了什么。
int c=a??B默认值(int)0
而不是
null
,或者只是
int,那么code>可能就是您想要的?c=a??b
如果你想
c
可以为空。对不起,我忘了提到c是一个可以为空的整数。我现在已经更新了