Object 关于铸造和对象
很简单,我只是想解释一下:Object 关于铸造和对象,object,c#-3.0,types,casting,type-safety,Object,C# 3.0,Types,Casting,Type Safety,很简单,我只是想解释一下: internal class B { // Base class } internal class D : B { // Derived class } 在另一节课上,我写道: B b3 = new Object(); //compilation time error! 为什么???我们支持所有类继承自“object”所有类都是对象s,但并非所有对象都是{someclass} 同样,所有总线都是车辆,但并非所有车辆都是总线。所有类都是对象s,但并非所有对象都是{s
internal class B { // Base class
}
internal class D : B { // Derived class
}
在另一节课上,我写道:
B b3 = new Object(); //compilation time error!
为什么???我们支持所有类继承自“object”所有类都是
对象
s,但并非所有对象都是{someclass}
同样,所有总线都是车辆,但并非所有车辆都是总线。所有类都是
对象
s,但并非所有对象都是{someclass}
同样,所有总线都是车辆,但并非所有车辆都是总线。
B
比对象
更专业,因此您无法将对象
实例指定给B
引用。这是因为并非每个对象
实际上都是B
——只有相反的情况才是正确的
假设类
B
中有一个字段x
。当您实例化一个对象时,没有为该字段保留内存,如果您可以将其分配给B
类型的引用,它将尝试读取或写入未分配的内存,这是不允许的(或有用的)。B
比对象更专业化,因此,不能将对象
实例分配给B
引用。这是因为并非每个对象
实际上都是B
——只有相反的情况才是正确的
假设类B
中有一个字段x
。当您实例化一个对象
时,没有为该字段保留内存,如果您可以将其分配给B
类型的引用,则它将尝试读取或写入未分配的内存,这是不允许的(或有用的)