Ho una classe con una proprietà che è un dizionario:pigri proprietà del dizionario in C#
public class Entity
{
public Dictionary<string, string> Name { get; set; }
}
Vorrei cambiare questa proprietà per usare initializtion pigro. Ho provato il seguente:
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;
}
}
}
Questo è ovviamente un errore, come Nome e nome hanno tipi diversi. Per la vita di me, però, non riesco a capire come specificarlo correttamente. Tutto quello che voglio veramente è che il nome rimanga nullo finché non accedo, quindi lo creo alla prima lettura o scrittura.
Hai una condizione di gara lì. – LukeH
Sì aggiunto ho aggiunto una nota su questo probabilmente stavate scrivendo il tuo commento. ;) – Vache
D'oh, sembra che stavo usando [i guanti di complicator] mia (http://thedailywtf.com/Articles/The_Complicator_0x27_s_Gloves.aspx). Questo è ciò che accade quando mi innamoro di una caratteristica interessante. Grazie, segnerò questa come risposta, non appena me lo consentirà. Ora, perché ho un sacco di questi, ho solo bisogno di creare una sorta di fabbrica per loro. –