-3
如果我嘗試使用「as」關鍵字來生成空值,它會給我帶來運行時錯誤。爲什麼「as」關鍵字與類不起作用,除非在數組中?
Base x = new AClass() as Base;
但是,如果我製作一個數組並執行它,錯誤不會發生。它按預期給我提供空值。
I1[] array = new I1[1];
array[0] = new AClass();
for (int i = 0; i < array.Length; i++)
{
//Works
Base x = array[0] as Base;
爲什麼會這樣呢?數組[0] =新的AClass()。沒有數組有什麼問題?
爲什麼不這樣做:基數X =空? – argaz
什麼是運行時錯誤?並且'AClass'是'Base'的直接或間接的子類?你真的試圖實現什麼(因爲直接分配'null'顯然不是一種選擇)? –
你將不得不提供更多細節。我無法複製你的結果。如果'AClass'從'Base'繼承,那麼一切正常,我不會收到運行時錯誤。如果'AClass'沒有從'Base'繼承,我得到一個編譯器錯誤。 – itsme86