// 问题1:如果可空类型不初始化,则其值不会参与计算。
decimal? a = null;
//decimal? a = 0; // 修正
a += 20;
Console.WriteLine(a);
// 问题2:使用??需注意运算符优先级的问题
decimal? v1 = 200;
decimal? v2 = 400;
decimal result = v1 ?? 0 + v2 ?? 0;
// 1. 会先计算0 + v2的值得到: v1 ?? 400 ?? 0
// 2. 代入v1, 经计算得到:200 ?? 0
// 3. 最后得到:200
// decimal result = (v1 ?? 0) + (v2 ?? 0); // 修正
Console.WriteLine(result);
// 运算符优先级:https://msdn.microsoft.com/en-us/library/aa691323(v=vs.71).aspx
c# - 常见错误
最新推荐文章于 2024-04-28 07:57:21 发布