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 equivale
The ?? operator has lower precedence than the + operator, so your expression really works as:
string s = ("foo" + x) ?? (0 + "bar");
First the string "foo" and the string value of x are concatenated, and if that would be null (which it can't be), the string value of 0 and the string "bar" are concatenated.