不完全是C#4.0规范中的“7.13空合并运算符”


not exact “7.13 The null coalescing operator” in C# 4.0 spec

在C 4.0规范的"7.13空合并运算符"中,它说

Otherwise, if b has a type B and an implicit conversion exists from a to B, the result type is B.

据我所知,它应该是从a0到b(a0是a的基础类型,如果a是可以为空的类型,或者a是其他类型)。

1
2
int? a=null;
long b=5;

那么a??b的类型是long,因为存在从int(即a0)到long的隐式转换。

请帮助确认我的观点是否正确。


在C 3.0中,它表示:

Otherwise, if an implicit conversion exists from A0 to B, the result
type is B.

在我看来,这可能是C 4.0的拼写错误。