C# 如果值不为null,那么从多个结果中赋值的更好方法是什么?
这听起来可能很简单,但我真的想找到一种更好的方法来编写下面的代码C# 如果值不为null,那么从多个结果中赋值的更好方法是什么?,c#,if-statement,null,C#,If Statement,Null,这听起来可能很简单,但我真的想找到一种更好的方法来编写下面的代码 if (Master.SerialNo1 != null) { result.ChipId = Master.SerialNo1; } if (Master.SerialNo2 != null) { result.ChipId = Master.SerialNo2; } i
if (Master.SerialNo1 != null)
{
result.ChipId = Master.SerialNo1;
}
if (Master.SerialNo2 != null)
{
result.ChipId = Master.SerialNo2;
}
if (Master.SerialNo3 != null)
{
result.ChipId = Master.SerialNo3;
}
if (Master.SerialNo4 != null)
{
result.ChipId = Master.SerialNo4;
}
假设ChipId和SerialNo的类型相同,那么:
result.ChipId = Master.SerialNo1 ?? Master.SerialNo2 ?? Master.SerialNo3 ?? Master.SerialNo4;
这将按照ChipId在右侧出现的顺序将第一个非空引用分配给ChipId
这可能会在多行上更具可读性:
result.ChipId =
Master.SerialNo1
?? Master.SerialNo2
?? Master.SerialNo3
?? Master.SerialNo4;
??
被称为。尝试使用??
操作符:
result.ChipId = Master.SerialNo1 ?? Master.SerialNo2 ?? Master.SerialNo3 ?? Master.SerialNo4 ?? null;
当然,您可以使用任何默认值,而不是
null
这个问题似乎离题了,因为它属于我看到的唯一选择是result.ChipId=Master.SerialNoX!=无效的Master.SerialNoX:[…]
但它确实是一样的,就在一行中。谢谢@matthew watson