为什么as运算符可以与Nullable <T>一起使用?

rec*_*ive 19 c# autoboxing nullable

根据as运营商的文档,as"用于在兼容的参考类型之间执行某些类型的转换".由于Nullable 实际上是一个类型,我希望as不会使用它.但是,此代码编译并运行:

object o = 7;
int i = o as int? ?? -1;
Console.WriteLine(i); // output: 7
Run Code Online (Sandbox Code Playgroud)

这是正确的行为吗?文件是as错的吗?我错过了什么吗?

Eri*_*ert 21

这是正确的行为吗?

是.

文件是错误的吗?

是.我已通知文档管理员.感谢您引起我的注意,并为错误道歉.显然没有人记得在C#2.0中将可空类型添加到语言时更新此页面.

我错过了什么吗?

您可以考虑阅读实际的C#规范而不是MSDN文档; 它更具权威性.