C#では
int? a1 = 0;
int? a2 = 100;
a1 = a1 | default(int?);
a2 = a2 | default(int?);
a1とa2の両方がnullであることが判明しました。誰かがその働きを説明してくれるなら素晴らしいでしょう。
アップデート
この非常識な例を取り上げた理由は、int時の動作でしたか?boolに置き換えられますか?とバインディングプロセス。
bool? a1 = null;
bool? a2 = true;
a1 = a1 | default(bool?);
a2 = a2 | default(bool?);
このコードは、式の結果が常にnullであることを示す警告を表示しません。推測される理由は'I_dont_know'| int ='I_dont_know'であり、'I_dont_know' | true = true
私が間違っている場合は私を訂正してください