Recently I had a weird bug where I was concatenating a string with an int?
and then adding another string after that.
My code was basically the equivalent of this:
int? x=10;
string s = "foo" + x ?? 0 + "bar";
Amazingly enough this will run and compile without warnings or incompatible type errors, as will this:
int? x=10;
string s = "foo" + x ?? "0" + "bar";
And then this results in an unexpected type incompatibility error:
int? x=10;
string s = "foo" + x ?? 0 + 12;
As will this simpler example:
int? x=10;
string s = "foo" + x ?? 0;
Can someone explain how this works to me?