2012-09-12 24 views
0

所以我想通過所有從BaseClass的繼承對象的數組迭代,我的代碼看起來是這樣的:使用具有多態性的foreach給出空引用異常?

ChildClass object1 = new ChildClass(); 
OtherChildClass object2 = new OtherChildClass(); 
BaseClass array[] = {object1, object2} 

foreach(BaseClass element in array) 
{ 
    //do stuff 
} 

凡明顯ChildClass和OtherChildClass從BaseClass的繼承。 // do stuff的語句每次都會給出一個空引用異常,當我看到局部變量賦值「element」爲空時......但「array」遠不及空!

在我看來,該foreach沒有拿起數組中的項目,因爲他們不完全是基類,但我不知道如何解決這個問題。

+6

不,它真的沒有那樣做。努力想出一個簡短但完整的程序來展示問題,我懷疑你會發現問題出在哪裏。 –

回答

1

狂猜:你正在執行的代碼不是你上面的代碼;你有上面不會編譯代碼,作爲數組聲明必須是:

BaseClass[] array = {object1, object2}; 

給一個嘗試,並執行cleanrebuild一步。