gpt4 book ai didi

c# - 如果我访问该对象属性,类属性是否会自动初始化?

转载 作者:太空宇宙 更新时间:2023-11-03 20:16:45 24 4
gpt4 key购买 nike

当一个对象持有另一个对象作为属性时,该属性默认为 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;

如果它为 null,这会启动一个新版本的 SomeObject 吗?

-- 编辑--将@Kjartan 建议应用到代码中。

最佳答案

这确实有效。第一次访问该属性时,_obj 将填充新实例(因为它之前为空)。下次调用时,您将返回与第一次初始化相同的 Obj 实例。

这是创建某种“延迟加载”的常用方法。

关于c# - 如果我访问该对象属性,类属性是否会自动初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16194702/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com