我有一个像下面那样的Userdetails类
public class UserDetails
{
public string ssn;
public string username;
public string emailid;
public Address address;
}
此处地址是另一个具有公共字段的类,如
public class Address
{
public int id;
public string address;
}
现在,当用户登录应用程序时,我构造了Userdetails对象。现在我不会经常在userdetails中使用地址对象,但是有数据。
在这种情况下,我如何使用C#4.0的Lazy初始化功能。
请注意,数据来自直接数据库查询,并且这些类都没有构造函数或其他方法来获取数据。这些只是C#中数据库字段的表示。
建议我在这里使用延迟初始化的最佳方法。
答案 0 :(得分:1)
您可以拥有一个私人懒人地址:
private Lazy<Address> _address = new Lazy<Address>(() => {
---code to get the address---
});
public Address address {
get {
return _address.Value;
}
}