Об использовании отложенной функции в C # 4.0 - PullRequest
0 голосов
/ 11 июля 2011

У меня есть класс 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.Теперь я не буду использовать объект адреса внутри пользовательских деталей очень часто, но у меня есть данные.

В этом сценарии как я могу использовать функцию инициализации Lazy в C # 4.0.

Обратите внимание, что данные взяты из прямого запроса БД, и ни один из этих классов не имеет конструкторов или других средств для полученияданные.Это просто представления полей базы данных в C #.

Предложите мне лучший способ использовать отложенную инициализацию здесь.

1 Ответ

1 голос
/ 11 июля 2011

Вы можете иметь приватный ленивый адрес:

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

public Address address {
    get {
        return _address.Value;
    }    
}
...