Ich habe eine geerbte Klasse und ich versuche, den Argumenttyp der Ereignismethode in einen anderen Typ zu ändern, der auch eine geerbte Klasse ist.C# - Ändern des Argumenttyps der Überschreibungsmethode
Die ursprünglichen Klassen:
public class Alpha {
protected virtual void OnSpecialEvent(AlphaArgs e);
}
public class AlphaArgs {
public AlphaArgs (int a, object b);
public int A { get; }
public object B { get; }
}
Meine inheriting Klassen:
public class Beta : Alpha {
protected override void OnSpecialEvent (BetaArgs e)
{
/* Do Stuff */
}
}
public class BetaArgs : AlphaArgs {
public BetaArgs (int a, object b, string c) : base (a, b)
{
/* Do Stuff */
}
public string C { get; }
}
Aber ich mit dem Fehler am Ende:
CS0115 'Beta.OnSpecialEvent(BetaArgs)': no suitable method found to override
Wenn ich AlphaArgs verwenden Ich habe keine jedes 'Problem', aber ich verliere den zusätzlichen Parameter, als ich hinzufügen möchte.
Gibt es etwas offensichtlich fehlt mir, ich weiß nicht einmal, was ich suche ...
In Beispiel eins: Ich würde den BetaArgs Parameter nicht in der Lage sein passieren OnSpecialEvent weil BetaArgs weiter unten in der Vererbungskette ist, nicht wahr? – Zuriki