1
我有一個類Foo
與公共領域MyField
(我知道,糟糕的設計,幾年前由一個工具自動生成,但沒有最近的計劃重新生成的代碼爲了朝着自動屬性)和Foo
一類派生:在構造函數中,字段是否可以不是null(或其默認值)?
public class Foo
{
public int MyField;
}
public class Bar : Foo
{
}
現在Foo
構造函數中有一張支票,因爲我假設條件從來沒有通過,這似乎可疑的對我說:
if(this.MyField != 0) ...
領域尚未設置在基類構造函數中。因此我的問題是:這種支票有沒有可能通過?
下列情況來到了我的腦海裏,爲了回答這個問題:
- 類
Bar
集MyField
另一個缺省值。這僅僅是Bar
構造函數中可能因此將後運行檢查 - >檢查不需額外通 - 構造函數鏈上
Bar
。檢查本身之前再次執行執行的Bar
構造 - >檢查再次失敗
我希望我不會錯過任何情況下,因此可以直接省略檢查,不容我?
實際上在裏面做了什麼,如果? – Evk
@Evk爲什麼這會起到任何作用?無論如何,該字段的值在if塊中被改變。但我只是對實際達到這一點的條件感興趣。 – HimBromBeere
它真的是'Foo'構造函數而不是'Bar'嗎?在後一種情況下,我會假設這是一個檢查,以確保兼容性(如果在基類中發生了某些變化)(例如,如果字段明確設置初始值)。 – Sinatr