mat*_*att 4 c# null-coalescing-operator
我有以下代码:
decimal? a = 2m;
decimal? b = 2m;
decimal c = a ?? 1m * b ?? 1m;
Run Code Online (Sandbox Code Playgroud)
由于双方a并b已填写,我希望c给我的结果4.
但是,我得到的结果是2,在这种情况下b取为1而不是2.
有谁知道这种行为背后的原因是什么?
如果要获取值,请将值条件分组 4
decimal c = (a ?? 1m) * (b ?? 1m);
Run Code Online (Sandbox Code Playgroud)
您当前的语法被评估为
decimal c = a ?? (1m * b ?? 1m);
Run Code Online (Sandbox Code Playgroud)
以及你得到的价值2(至于a)