0

我有一个像下面这样的 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 address;
}

现在,当用户登录应用程序时,我构造了 Userdetails 对象。现在我不会经常在 userdetails 中使用地址对象,但有数据。

在这种情况下,我如何使用 C# 4.0 的延迟初始化功能。

请注意,数据来自直接 db 查询,这些类都没有构造函数或其他获取数据的方法。这些只是 C# 中数据库字段的表示。

建议我在这里使用延迟初始化的最佳方法。

4

1 回答 1

1

你可以有一个私有的惰性地址:

private Lazy<Address> _address = new Lazy<Address>(() => {
    ---code to get the address---
});

public Address address {
    get {
        return _address.Value;
    }    
}
于 2011-07-11T06:25:25.537 回答