当一个对象将另一个对象作为属性并且该属性默认为 null 时。如果它自己的属性被代码访问,该属性会被初始化吗?
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 建议应用于代码。