一个结构不能从另一个结构或类继承,而且不能作为一个类的基。所有结构都直接继承自 System.ValueType,后者继承自 System.Object。1.System.ValueType是class
   这点可以用reflactor得到证明
2.System.Int32是一个结构
   这点可以用reflactor得到证明一个结构(例如System.Int32)不能从类(System.ValueType)继承?

解决方案 »

  1.   

    Int32确实继承至ValueType,只是这种的继承关系是通过struct关键字隐式声明的,你可以看任何struct的IL代码,都是extends valuetypeC#编译器把ValueType作为一个特殊类处理,
    显式的声明继承至ValueType是不行的(除了Enum类,好像是唯一一个class继承至ValueType的类),
    MS定死了规则,没法的事情.
      

  2.   

    结构体不可以从任何类继承,但它可以继承接口。结构体本身的继承树是:
    System.Object->System.ValueType->Struct
    ValueType是特殊的类型,由编译器和CLR共同处理一些它与引用类型的不同之处。将Struct继承自ValueType和Object是为了提供一些统一的功能
    Int32,Int16,Float,Double等都是特殊的被编译器所支持结构体。
      

  3.   

    http://www.cnblogs.com/cdts_change/archive/2009/09/20/1570414.htmlhttp://msdn.microsoft.com/en-us/library/system.valuetype.aspx