noch mehr über dynamische Variablennamen

07/03/2009 - 19:38 von Sebastian | Report spam
Hallo

Noch ein kleines Problem.

mit einem neuen klick auf einem Button soll eine neue Instanz einer Klasse
erstellt werden.

Die Idee iste es mit

public Form1()

{

InitializeComponent();

dict = new Dictionary<string, object>();

}

private void button1_Click(object sender, EventArgs e)

{

dict.Add("car_" + inum, new Auto());

inum++;

}

private void button2_Click(object sender, EventArgs e)

{

foreach (KeyValuePair<string, object> kvp in dict)

{

Console.WriteLine(kvp.Key + " " + kvp.Value);

}


}

Wenn ich den button2 Drücke bekomme ich folgendes

car_0 objectList.Auto

car_1 objectList.Auto



meine Farge ist wie kann ich auf die Objekte zugreifen.

z.B will ich bei car_2 auf die methode toString zugreifen u.s.w.



Danke im Vorraus



Gruß

Sebastian
 

Lesen sie die antworten

#1 Frank Dzaebel
07/03/2009 - 20:12 | Warnen spam
Hallo Sebastian,

meine Farge ist wie kann ich auf die Objekte zugreifen.
z.B will ich bei car_2 auf die methode toString zugreifen u.s.w.



zum Beispiel so:

// wenn car_1 vorhanden ist, zum Beispiel:
Console.WriteLine(dict["car_2"].ToString());

Recht fehleranfàllig diese Art der Referenzierung eines
Objektes. Auch wàre ggf.:
Dictionary<string, Auto>
besser, wenn denn auch nur Autos in die Liste kommen.
Vielleicht auch einfach nur
List<Auto>
damit Du nicht mit strings als Zugriffs-Key arbeiten musst.
Zugriff dann etwa so:
autos[3]


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen