Constructor

hallo,

ich moechte aus einem constructor einen anderen aufrufen, so aehnlich wie in java: this(param1, param2,…). gibt es da eine moeglichkeit???

der jan

Ja, je nachdem, welchen Konstruktor Du willst:
Bei Argumenten für den Konstruktor der Basisklasse sieht das so aus:
public MyClass(string arg1, int arg2) : MyBaseClass(arg1)
{…}
(Wenn die Basisklasse einen Konstruktor mit einem String-Argument hat).

Bei unterschiedlichen Konstruktoren der selben Klasse geht es auch, nur nicht mit this(…), sondern indem Du Dir eine eigene private oder protected-Methode definierst, die dann aus den unterschiedlichen Konstruktoren aufgerufen wird.

public class MyClass
{
public MyClass(string arg1, int arg2)
{
CommonConstructor(arg1, arg2);
}
public MyClass(string arg1)
{
CommonConstructor(arg1, -1);
}
public MyClass()
{
CommonConstructor(string.Empty, -1);
}
protected CommonConstructor(string arg1, int arg2)
{

}
}

Gruß,
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ja, ich weiss, es ist nicht ganz fein, auf seine eigenen Artikel zu antworten, aber ich habe noch etwas relevantes gefunden:
Zufällig bin ich drauf gestoßen, dass der Weg mit this() doch geht, man also keine eigene CommonConstructor-Methode braucht:

public class MyClass
{
public MyClass(string arg1)
{ … }
public MyClass() : this(string.Empty)
{}
}

geht auch.

Martin

1 Like

Ja, ich weiss, es ist nicht ganz fein, auf seine eigenen
Artikel zu antworten, aber ich habe noch etwas relevantes
gefunden:

ich finds gut, denn genau so etwas habe ich gesucht. vielen dank

der jan