發生在這裏我遇到的代碼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,因爲沒有有效的轉換。