如果值不为null,则从多个结果中分配值的更好方法
本文关键字:结果 分配 更好 方法 null 如果 | 更新日期: 2023-09-27 18:20:00
这听起来可能很简单,但我真的想找到一种更好的方法来编写下面的代码,
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;
}
尝试使用??
运算符:
result.ChipId = Master.SerialNo1 ?? Master.SerialNo2 ?? Master.SerialNo3 ?? Master.SerialNo4 ?? null;
当然,您可以使用任何默认值来代替null
。
假设ChipId和SerialNo的类型相同,那么:
result.ChipId = Master.SerialNo1 ?? Master.SerialNo2 ?? Master.SerialNo3 ?? Master.SerialNo4;
这将按照ChipId在右侧出现的顺序为其分配第一个非空引用。
这可能在多行上更可读:
result.ChipId =
Master.SerialNo1
?? Master.SerialNo2
?? Master.SerialNo3
?? Master.SerialNo4;
??
被称为"空合并运算符"。