C#void type-安全

5 c#

我是C#编程的新手(来自C++)

我的问题是:在C#中,每个类型都继承自Object为什么'void'不会?它会导致一些RT /类型安全问题,还是只是语义/语法?

(我知道int/char等''base type'和装箱/拆箱 - 我的问题是针对void的)

谢谢

dtb*_*dtb 11

在C#中,void是一个在两个上下文中使用的关键字:

  • 在方法签名的上下文中,void表示没有返回类型; 它没有引用可以继承的类型"void" object.

    (在反射,返回类型一直被指定.由于这个原因,有一个System.Void在框架类型,但voidSystem.Void不能互换使用.)

  • 在不安全的上下文中,void*指向未知类型的指针类型.正如@Colin Mackay链接的博客文章中所提到,指针类型不会继承,尽管它们可以转换为一个.object

  • 不,void*是完全有意义的,并不意味着"对象".void*表示"指向未知大小的非托管数据的不安全指针"."对象"表示"对任何托管对象的引用". (6认同)

Col*_*kay 8

并非一切都从Object继承 - 这是一个普遍的神话.接口不从Object继承.

有关详细信息,请参阅此处:http://blogs.msdn.com/ericlippert/archive/2009/08/06/not-everything-derives-from-object.aspx

  • Senfo:既然最初的问题假设是虚假的,那么在没有指出的情况下回答原始问题是非常困难的. (5认同)