object obj =123;
string str = obj as string;
這樣得到的str的值為null的原因:
首先 雖然123值類型賦值給引用類型,發(fā)生了裝箱操作,但是 obj 變量的類型對(duì)象仍然是 System.Int32 因?yàn)镃#編譯器和clr需要保證C#必須類型的安全,類型安全之一就是類型必須是明確,類型必須是唯一的。as 關(guān)鍵字,只會(huì)檢測(cè)obj 是否兼容 System.String,但是當(dāng)前的obj 的類型指針是System.Int32,所以既然不兼容,那么只能返回null了
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。