當一個對象擁有另一個對象作爲一個屬性,並且該屬性默認爲空。如果它的屬性被代碼訪問,該屬性是否會被初始化?如果我訪問那些對象屬性,是否有一個類屬性自動初始化?
public User {
private _obj = null;
public Obj SomeObject {
get { return _obj ?? (_obj = new Obj()); }
set { _obj = value; }
}
public User() {
//do stuff
}
}
正在使用的代碼。
User user = new User();
int x = user.SomeObject.SomeIntValue;
如果它是空的,這會啓動SomeObject的新版本嗎?編輯 - 應用@Kjartan建議代碼
這裏還有一個延遲初始化[MSDN(HTTP類:// msdn.microsoft.com/en-us/library/dd642331.aspx) – mgttlinger 2013-04-24 14:36:04
非常感謝您的確認:D – Jessycormier 2013-04-24 14:36:55