У меня есть класс со свойством, которое является словарем:
public class Entity
{
public Dictionary<string, string> Name { get; set; }
}
Я хотел бы переключить это свойство на использование ленивой инициализации. Я попробовал следующее:
public class Entity
{
private Lazy<Dictionary<string, string>> name = new Lazy<Dictionary<string, string>>(() => new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase));
public Dictionary<string, string> Name
{
get
{
return name;
}
set
{
name = value;
}
}
}
Это, конечно, ошибка, так как Name и name имеют разные типы. Хотя, убей меня, я не могу понять, как это правильно указать. Все, что я действительно хочу, это чтобы имя оставалось нулевым, пока я не получу к нему доступ, а затем создал его при первом чтении или записи.