我遇到了这些代码
ClassA classAObject;
//some lines of code that hydrate 'classAObject'
DerivedFromClassA derivedObject = classAObject as DerivedFromClassA;
Run Code Online (Sandbox Code Playgroud)
最后一行是怎么回事?它是仅为derivedObject赋予在derivedObject和classAObject之间共同的那些值吗?
不,它大致相当于:
DerivedFromClassA derivedObject = null;
if (classAObject is DerivedFromClassA)
{
derivedObject = (DerivedFromClassA) classAObject;
}
Run Code Online (Sandbox Code Playgroud)
换句话说,结果将是空引用或对同一对象的引用,但静态类型为派生类型.