Недавно у меня была странная ошибка, когда я конкатенировал строку с 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;
AsБудет ли этот более простой пример:
int? x=10;
string s = "foo" + x ?? 0;
Может кто-нибудь объяснить, как это работает для меня?