Ich habe diesen einfachen Code:Warum darf ich Eigenschaften ändern, die nur mit Objektinitialisierern gelesen werden?
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() { }
}
Also, wenn ich eine Datenklasse zu schaffen:
Data data = new Data { List = { "1", "2", "3", "4" } };
Die Liste mit Strings "1", "2", "3" gefüllt wurde, "4" auch wenn es keine set
hatte.
Warum passiert das?
Sie fügen Elemente zu 'List string2' hinzu und dann lesen Sie' List string1' macht für mich keinen Sinn. – kevintjuh93
tatsächlich. Aber string2 ist nach dem Hinzufügen von Elementen sehr klein. – Asbrand
Woher weißt du das? Sie überprüfen 'List string2' nicht irgendwo in Ihrem Code. – kevintjuh93