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;
}
换句话说,结果要么是空引用,要么是对同一对象的引用,但静态类型为派生类型