最近我遇到了一个奇怪的错误,我将一个字符串与 an 连接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;
有人可以向我解释这是如何工作的吗?