是否可以使用null运算符或任何其他简化代码来简化以下条件?
int? c,a,b;
if(a!=null)
{
c = a;
}
else if(b!=null)
{
c = b;
}
else
{
c = null;
}
预先感谢
答案 0 :(得分:4)
您的意思是:
int? c = a ?? (b ?? null)
请注意,根据您的if-else语句,c
必须为int?
类型。出于相同的原因,a
和b
都是int?
类型是有意义的。
因此,由于b
可能是null
,因此相同的表达式可以重写为:
int? c = a ?? b;
答案 1 :(得分:3)
c = a ?? b ?? null;
尽管如果您的捕获仍然为空,那么您只需要
c = a ?? b;
编辑:正如其他用户所说,如果您正在使用int,则int可为空(int?)很重要。
答案 2 :(得分:3)
假定它们都是int?
类型的
int? c = a ?? b; //no need for an explicit null. If b is null so will c be.
因为它们是否为int
类型,这个问题没有意义。