我有以下代碼:空 - 結合運營商
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
的值,因此這就是結果。