在Model中经常会将属性定义为可空类型,
public class Product
{
public int? Price{get;set;}
}
当两个Price属性值相加时,需要先判断不为null,否则会报错;
在相加时,我没有考虑运算符优先级的问题,导致数据出错
public int GetTotalPrice()
{
Product a=new Product();
Product b=new Product();
//错误的计算
var value=a.Price??0 + b.Price??0;
//正确的计算
var value=(a.Price??0) + (b.Price??0);
}
c#运算符优先级:https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/operators/