发生在这里我遇到的代码OOPS什么在这个任务
ClassA classAObject;
//some lines of code that hydrate 'classAObject'
DerivedFromClassA derivedObject = classAObject as DerivedFromClassA;
这些线来怎么回事,就上线?它是否只为derivedObject分配了derivedObject和classAObject之间通用的那些值?
发生在这里我遇到的代码OOPS什么在这个任务
ClassA classAObject;
//some lines of code that hydrate 'classAObject'
DerivedFromClassA derivedObject = classAObject as DerivedFromClassA;
这些线来怎么回事,就上线?它是否只为derivedObject分配了derivedObject和classAObject之间通用的那些值?
不,这大致上相等于:
DerivedFromClassA derivedObject = null;
if (classAObject is DerivedFromClassA)
{
derivedObject = (DerivedFromClassA) classAObject;
}
换句话说,结果将要么为空引用,或同一个对象的引用,但静态类型是的派生类型。
不,它访问的是同一个对象,但您现在可以访问类型为DerivedFromClassA
的该对象的部分。只有一个对象。
此外,如果classAObject不是DerivedFromClassA
或从其派生的类型的实例,则derivedObject将为null,因为没有有效的转换。