我有以下代码:空 - 结合运营商
decimal? a = 2m;
decimal? b = 2m;
decimal c = a ?? 1m * b ?? 1m;
由于两个a
和b
已经被填入,我期待c
给我的结果。
但是,结果我得到的是,在这种情况下b
取为代替。
有谁知道背后的原因是什么?为什么你的2
值
我有以下代码:空 - 结合运营商
decimal? a = 2m;
decimal? b = 2m;
decimal c = a ?? 1m * b ?? 1m;
由于两个a
和b
已经被填入,我期待c
给我的结果。
但是,结果我得到的是,在这种情况下b
取为代替。
有谁知道背后的原因是什么?为什么你的2
值
表达工作原理:
decimal c = a ?? (1m * b) ?? 1m;
由于a
有一个值,你得到的。
组,如果你想获得4
decimal c = (a ?? 1m) * (b ?? 1m);
当前的语法的值值条件为
decimal c = a ?? (1m * b ?? 1m);
和原因进行评估(为对于a
)
decimal c = a ?? 1m * b ?? 1m;
等于:
if (a != null)
c = a
else
...
在你的情况a
不为空并且具有2
的值,因此这就是结果。