c# – 为什么可以使用as操作符与Nullable? - 代码日志

c# – 为什么可以使用as操作符与Nullable?

根据as operator的文档,“用于在兼容的参考类型之间执行某些类型的转换”。从Nullable is actually a value type开始,我期待着不会使用它。但是,该代码编译并运行:

object o = 7;
int i = o as int? ?? -1;
Console.WriteLine(i); // output: 7

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

Is this correct behavior?

是。

Is the documentation for as wrong?

是。我已通知文件管理员。感谢您提请我注意,并对错误表示歉意。显然,没有人记得更新此页面,当可空类型添加到C#2.0语言。

Am I missing something?

您可以考虑阅读实际的C#规范而不是MSDN文档;它更明确

http://stackoverflow.com/questions/7109764/why-can-the-as-operator-be-used-with-nullablet

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:c# – 为什么可以使用as操作符与Nullable?