C# 4.0 关于C#4.0中惰性特性的使用
我有一个Userdetails类,如下所示C# 4.0 关于C#4.0中惰性特性的使用,c#-4.0,lazy-initialization,C# 4.0,Lazy Initialization,我有一个Userdetails类,如下所示 public class UserDetails { public string ssn; public string username; public string emailid; public Address address; } 这里Address是另一个类,它将具有公共字段,如 public class Address { public int id; public string ad
public class UserDetails
{
public string ssn;
public string username;
public string emailid;
public Address address;
}
这里Address是另一个类,它将具有公共字段,如
public class Address
{
public int id;
public string address;
}
现在,当用户登录应用程序时,我构造Userdetails对象。现在我不会经常在userdetails中使用address对象,而是已经获得了数据
在这个场景中,我如何使用C#4.0的延迟初始化特性
注意,数据取自直接db查询,这些类都没有构造函数或其他方法来获取数据。这些只是C#中数据库字段的表示形式
建议我在此处使用惰性初始化的最佳方法。您可以拥有一个专用惰性地址:
private Lazy<Address> _address = new Lazy<Address>(() => {
---code to get the address---
});
public Address address {
get {
return _address.Value;
}
}
private Lazy\u address=new Lazy(()=>{
---获取地址的代码---
});
公共广播{
得到{
返回_address.Value;
}
}
当我基本上设置地址时,我必须使用该值,这意味着我无法获得延迟初始化的好处。希望你明白我的意思。