Console.WriteLineが空の行を書き込む(Console.WriteLine(null)
コンパイルエラーが発生する)理由、およびNullReferenceExceptionが発生しない(それa+=1
を発生させるべきではない)理由を説明してください。
int? a = null;
a++; // Why there is not NullReferenceException?
Console.WriteLine(a); // Empty line
NullReferenceException
?しかし、それは価値があるものでint?
はありませんReference
int
null
++
、+=
および+
バリアントを引き上げてきました。したがって文がa++;
、a += 1;
、およびa = a + 1;
すべて許可されています。最初にのnull
場合、それぞれが生成します(例外はスローされません)。a
null