Der Titel ist möglicherweise ein wenig mehrdeutig, aber ich könnte mir keinen besseren Weg vorstellen, dies zu formulieren.Ändern der Parameterwerte vor dem Senden an den Basiskonstruktor
Ich weiß, dass ich einen abgeleiteten Konstruktor vor dem Aufruf eines Basiskonstruktors nicht aufrufen kann, aber kann ich irgendwie Parameterwerte ändern/erstellen, bevor ich sie an die Basis übertrage?
Zum Beispiel
public enum InputType
{
Number = 1,
String = 2,
Date = 3
}
public class BaseClass
{
public BaseClass(InputType t)
{
// Logic
}
}
public class DerivedClass : BaseClass
{
public DerivedClass(int i)
: base(value)
// Can I do something to infer what value should be here?
{
// Logic
}
}
Wenn ich eine abgeleitete Klasse, die den Wert, die für den Basiskonstruktor ableiten kann (in diesem Beispiel InputType.Number
gültig wären für ein int
,) ist es eine Möglichkeit, zu modifizieren, und/oder Werte erstellen, die an den Basiskonstruktor übergeben werden, bevor der abgeleitete Konstruktor ausgeführt wird?
Sie können "Wert" nicht über die Logik im Konstruktor der abgeleiteten Klasse erstellen, da die Basis (...) zuerst ausgeführt wird. –
@Reed, ja das war ein Tippfehler. Es soll eingefügt werden (InputType) i. Behoben – JaredPar
Ja, Sie können casten. Aber er hat nach einer Möglichkeit gefragt, Logik zu verwenden, um Werte zu schaffen, was nicht möglich ist. –