Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Object 关于铸造和对象_Object_C# 3.0_Types_Casting_Type Safety - Fatal编程技术网

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
类型的引用,则它将尝试读取或写入未分配的内存,这是不允许的(或有用的)