这可能听起来很简单,但我真的想找到一种更好的方法来编写下面的代码,
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;
}
答案 0 :(得分:3)
尝试使用??
运算符:
result.ChipId = Master.SerialNo1 ?? Master.SerialNo2 ?? Master.SerialNo3 ?? Master.SerialNo4 ?? null;
当然,您可以使用任何默认值代替null
。
答案 1 :(得分:2)
假设ChipId和SerialNo的类型相同,那么:
result.ChipId = Master.SerialNo1 ?? Master.SerialNo2 ?? Master.SerialNo3 ?? Master.SerialNo4;
这将按照它们在右侧发生的顺序为ChipId分配第一个非空引用。
这可能在多行格式上更具可读性:
result.ChipId =
Master.SerialNo1
?? Master.SerialNo2
?? Master.SerialNo3
?? Master.SerialNo4;