在 C# 中
int? a1 = 0;
int? a2 = 100;
a1 = a1 | default(int?);
a2 = a2 | default(int?);
a1 和 a2 都为空。如果有人能解释它的工作原理,那就太好了。
更新
我提出这个疯狂示例的原因是 int? 被布尔取代?和绑定过程。
bool? a1 = null;
bool? a2 = true;
a1 = a1 | default(bool?);
a2 = a2 | default(bool?);
这段代码没有给出警告说表达式的结果总是空的。推断的原因是'I_dont_know'|int = 'I_dont_know'其中'I_dont_know' | 真 = 真
如我错了请纠正我