在 C# 4.0 规范的“7.13 空合并运算符”中,它说
否则,如果 b 的类型为 B 并且存在从 a 到 B的隐式转换,则结果类型为 B。
据我了解,它应该是从 A0 到 B(如果 A 是可空类型,则 A0 是 A 的基础类型,否则是 A)。
int? a=null;
long b=5;
然后类型为a??b
long,因为存在从 int(即 A0)到 long 的隐式转换。
请帮助确认我的观点是否正确。
在 C# 4.0 规范的“7.13 空合并运算符”中,它说
否则,如果 b 的类型为 B 并且存在从 a 到 B的隐式转换,则结果类型为 B。
据我了解,它应该是从 A0 到 B(如果 A 是可空类型,则 A0 是 A 的基础类型,否则是 A)。
int? a=null;
long b=5;
然后类型为a??b
long,因为存在从 int(即 A0)到 long 的隐式转换。
请帮助确认我的观点是否正确。