c# – 为什么值类型继承自引用类型?
参见英文答案 >
How do ValueTypes derive from Object (ReferenceType) and still be ValueTypes?5个
> System.ValueType Understanding7个 我有两个问题: >我们知道所有类型都是从引用类型的Object派生出来的.我的问题是为什么int – 一个值类型 – 继承自引用类型Object?这可能吗? 对于我来说,这种情况看起来像是这种类型层次结构设计的问题. PS.我发现this相关的问题,但答案并没有给出任何真实的洞察力 – 只是抽象地谈论框. 解决方法
我们需要小心,不要在这里混淆概念.
首先是子类型. int是对象的子类型.子类型基本上意味着由超类型保证的合同(例如“有一个方法ToString,返回一个合适的字符串重新排序”)也保证该子类型. 然后在C#中继承.在C#中,继承 >通过确保超类型提供的接口在子类型中也可用来创建子类型 (C#中的接口实现将是另一个子类型机制的示例,它提供1但不是2) 基本上都是这样子类型或继承都不能保证内存布局,值/引用类型语义等.这些概念是正交的. “但那不对,”你可能会说. “对象合同的一部分是”引用类型语义“.这是需要拳击的地方.每当编译时类型的值类型是引用类型(即对象,ValueType或接口)时,它会模拟参考类型语义. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |