int?
最近、文字列を で連結し、その後に別の文字列を追加するという奇妙なバグがありました。
私のコードは基本的にこれと同等でした:
int? x=10;
string s = "foo" + x ?? 0 + "bar";
驚くべきことに、これは次のように、警告や互換性のない型エラーなしで実行およびコンパイルされます。
int? x=10;
string s = "foo" + x ?? "0" + "bar";
そして、これにより、予期しない型の非互換性エラーが発生します。
int? x=10;
string s = "foo" + x ?? 0 + 12;
この簡単な例と同様に:
int? x=10;
string s = "foo" + x ?? 0;
誰かがこれが私にどのように機能するかを説明できますか?