que tienen una clase con una propiedad que es un diccionario:Lazy propiedades del diccionario en C#
public class Entity
{
public Dictionary<string, string> Name { get; set; }
}
me gustaría cambiar esta propiedad a utilizar initializtion perezoso. Intenté lo siguiente:
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;
}
}
}
Esto es, por supuesto, un error, ya que Nombre y nombre tienen diferentes tipos. Sin embargo, por mi vida, no puedo encontrar la manera de especificar esto correctamente. Todo lo que realmente quiero es que Name permanezca nulo hasta que acceda a él, luego créelo en la primera lectura o escritura.
Tiene una condición de carrera allí. – LukeH
Sí, agregado Agregué una nota sobre esto probablemente mientras escribía su comentario. ;) – Vache
D'oh, parece que estaba usando mis [guantes de complicador] (http://thedailywtf.com/Articles/The_Complicator_0x27_s_Gloves.aspx). Esto es lo que sucede cuando me enamoro de una característica genial. Gracias, marcaré esto como la respuesta tan pronto como SO me lo permita. Ahora, debido a que tengo un montón de estos, solo necesito hacer una especie de fábrica para ellos. –