Ho questo semplice codice:Perché sono autorizzato a modificare le proprietà che sono di sola lettura con gli inizializzatori dell'oggetto?
public static void Main(String[] args)
{
Data data = new Data { List = { "1", "2", "3", "4" } };
foreach (var str in data.List)
Console.WriteLine(str);
Console.ReadLine();
}
public class Data
{
private List<String> _List = new List<String>();
public List<String> List
{
get { return _List; }
}
public Data() { }
}
così quando sono la creazione di una classe di dati:
Data data = new Data { List = { "1", "2", "3", "4" } };
L'elenco è stato compilato con le stringhe "1", "2", "3", "4" anche se non aveva set
.
Perché sta succedendo?
Si stanno aggiungendo elementi a 'List string2' e quindi si sta leggendo' List string1' non ha senso per me. – kevintjuh93
davvero. Ma List string2 è epmty dopo aver aggiunto elementi – Asbrand
Come fai a saperlo ?? Non stai controllando 'List string2' in nessun punto del tuo codice. – kevintjuh93