Constructors untereinander aufrufen (repost)

15/04/2009 - 21:16 von Michaela Meier | Report spam
Hi,

Ich glaub ich überseh mal wieder offensichtlichste Dinge ... aber wie
rufe ich einen Constructor aus einem anderen heraus auf?

Meine Klasse sieht ungefàhr so aus:

class MeineKlasse{
public MeineKlasse(ulong u,enumOption opt)
{
// Tu was Schönes mit u und opt
}
public MeineKlasse(object obj1,object obj2)
{
ulong j = (ulong)obj1;
string c = (string)obj2;
switch (c)
{
case "j":
MeineKlasse(j, enumOption.J);
break;
case "g":
MeineKlasse(j, enumOption.G);
break;
}
}
}

Nun werde ich bei dieser Konstruktion böse beschimpft, weil MeineKlasse
ja keine Variable/Funktion sondern ein Typ wàre.

Den Trick, den ich beim Googeln überall finde
public MeineKlasse(object obj1,object obj2): this(...)
kann ich nicht anwenden, weil die Parameter ja erst per switch
umgewandelt/zugeordnet werden müssen und nicht einfach nur ergànzt
werden können.

Als Workaround könnte ich den Schlamassel natürlich in Funktionen
auslagern, die sich widerstandslos untereinander aufrufen lassen ...
aber muß ich das? Oder gibt es eine Syntax mit der sich mein Problem
ohne Umbauten erledigen làßt?

Danke
 

Lesen sie die antworten

#1 Thorsten Doerfler
15/04/2009 - 21:29 | Warnen spam
Michaela Meier schrieb:
Den Trick, den ich beim Googeln überall finde
public MeineKlasse(object obj1,object obj2): this(...)
kann ich nicht anwenden, weil die Parameter ja erst per switch
umgewandelt/zugeordnet werden müssen und nicht einfach nur ergànzt
werden können.

Als Workaround könnte ich den Schlamassel natürlich in Funktionen
auslagern



Etwas anderes, als dieser Workaround wird Dir in solchen Fàllen auch
kaum erspart bleiben. Wenigstens kommt Dir nicht in den Sinn, den
Initialisierungscode des alternativen Konstruktors zu wiederholen. :-)

Thorsten Dörfler
Microsoft MVP Visual Basic

vb-hellfire visual basic faq | vb-hellfire - einfach anders
http://vb-faq.de/ | http://www.vb-hellfire.de/

Ähnliche fragen