Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/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
C# 哎呀,这个作业里发生了什么_C#_Oop - Fatal编程技术网

C# 哎呀,这个作业里发生了什么

C# 哎呀,这个作业里发生了什么,c#,oop,C#,Oop,我遇到了这些代码行 ClassA classAObject; //some lines of code that hydrate 'classAObject' DerivedFromClassA derivedObject = classAObject as DerivedFromClassA; 怎么了,在最后一行?它是否仅将derivedObject和ClassAOObject之间的公共值分配给derivedObject?否,它正在访问同一个对象,但您现在可以从类型DerivedFromCl

我遇到了这些代码行

ClassA classAObject;
//some lines of code that hydrate 'classAObject'
DerivedFromClassA derivedObject = classAObject as DerivedFromClassA;

怎么了,在最后一行?它是否仅将derivedObject和ClassAOObject之间的公共值分配给derivedObject?

否,它正在访问同一个对象,但您现在可以从类型
DerivedFromClassA
访问该对象的部分。只有一个对象


此外,如果ClassAOObject不是派生自ClassA的实例或派生自ClassA的类型,则派生对象将为空,因为没有有效的强制转换。

否,大致相当于:

DerivedFromClassA derivedObject = null;
if (classAObject is DerivedFromClassA)
{
    derivedObject = (DerivedFromClassA) classAObject;
}
换句话说,结果要么是空引用,要么是对同一对象的引用,但静态类型为派生类型