[C#] ArrayList und Formular-Objekte

MAN

Erfahrenes Mitglied
Hallo,

mein Kopf glüht gerade dahin....

Zuerst einmal: ich habe ein struct, welches (gekürzt) folgendermaßen aussieht (mit initialisierung eines Array-Objektes):
Code:
private struct FForms
{
	public ArrayList  cForms;
	public int        nCurFormIndex;
}

private static FForms[] myForms = new FForms[5];

myForms[0].cForms = new ArrayList();
myForms[0].cForms.Add( new frmSR() );
// frmSR ist hierbei eine Formular-Klasse (abgeleitet von System.Windows.Forms.Form)
Das funktioniert soweit alles noch.

Mein Problem hierbei ist, dass ich jetzt zum Beispiel folgendes aufrufen will:
Code:
nCurLeft = myForms[0].cForms[0].Left;
Leider funktioniert das so nicht, er bringt dann folgende Fehlermeldung:
'object' does not contain a definition for 'Left'
Sprich, er erkennt das Objekt nicht als Formular, aber wieso nicht, wenn ich dem ersten Element das Formular hinzugefügt habe?


mfG,
MAN
 
Ein ArrayList kann alle möglichen Objekte aufnehmen, daher wird ein Element beim Auslesen auf den kleinstmöglichen gemeinsamen Nenner verallgemeinert, das ist hier eine Instanz von object. Da object keine Eigenschaft namens Left besitzt, bekommst du diese Fehlermeldung.
Beim Auslesen von Objekten aus einem ArrayList oder einem Hashtable solltest du auf jeden Fall immer in den entsprechenden Typ casten, den du brauchst.

Code:
nCurLeft = ((Form)myForms[0].cForms[0]).Left;
 

Neue Beiträge

Zurück