Недавно у меня была странная ошибка, в которой я связывал строку с 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;
Может кто-нибудь объяснить, как это работает для меня?