可能重复:
.NET中的所有内容都是对象吗?
ValueTypes如何从Object(ReferenceType)派生而仍然是ValueTypes?
嗨,我只是不明白.System.Object是(我认为)引用类型,但.NET中的所有数据类型都继承自它.值类型也是如此.我不明白它 - 值类型在堆栈上有它的值,但它继承自Object?希望有人能帮助我理解
问问自己为什么你认为通常在堆栈上分配的类型会继承System.Object而且我认为你发现你无法形成一个好理由是很奇怪的.
如果您认为这是因为对象的类型定义了它的分配位置,那么您就错了.哪个成员ValueType负责定义其分配机制?(那是什么成员System.Object?)
.NET中的类型继承应该包含" 是 "关系:例如,a string 是一个 object..NET世界中的所有东西都是,所以a 是a ,a 是an 等.objectintobjectdoubleobject
你可以在条款想到这里氏替换原则:如果我写的是期望一个代码object,我应该能够处理的任何类型的一个object-即任何事情.我的代码应该同样适用于a string,a int,a List<int>等.
还要注意的是object保证某些成员,所有的类型都为这样做的结果:GetType,ToString,和GetHashCode.
| 归档时间: |
|
| 查看次数: |
8959 次 |
| 最近记录: |