OOPs在这个任务中发生了什么

use*_*358 3 c# oop

我遇到了这些代码

ClassA classAObject;
//some lines of code that hydrate 'classAObject'
DerivedFromClassA derivedObject = classAObject as DerivedFromClassA;
Run Code Online (Sandbox Code Playgroud)

最后一行是怎么回事?它是仅为derivedObject赋予在derivedObject和classAObject之间共同的那些值吗?

Jon*_*eet 6

不,它大致相当于:

DerivedFromClassA derivedObject = null;
if (classAObject is DerivedFromClassA)
{
    derivedObject = (DerivedFromClassA) classAObject;
}
Run Code Online (Sandbox Code Playgroud)

换句话说,结果将空引用对同一对象的引用,但静态类型为派生类型.