これは私にはバグのようです...
私は、そのように定義された自動プロパティを受け入れます。
public decimal? Total { get; set; }
それらが最初にアクセスされたときはnullになります。それらは初期化されていないので、もちろんnullです。
しかし、+ =で値を設定した後でも、この10進数は?まだnullのままです。だから後:
Total += 8;
合計はまだnullです。これはどのように正しいのでしょうか?(null + 8)を実行していることは理解していますが、8に設定する必要があるという意味で検出されないのは奇妙に思えます...
補遺:
私は質問で「null+8」のポイントを作成しましたが、文字列で機能することに注意してください。したがって、null + "hello"は問題なく実行され、"hello"が返されます。したがって、舞台裏では、文字列を「hello」の値を持つ文字列オブジェクトに初期化しています。動作は他のタイプのIMOでも同じである必要があります。文字列がnullを値として受け入れることができるためかもしれませんが、それでもnull文字列は初期化されたオブジェクトではありませんよね?
おそらく、文字列がnull許容ではないからです...