Kalıtım sınıfım var ve olay yönteminin argüman türünü de miras alınan bir sınıf olan farklı bir türe dönüştürmeye çalışıyorum.C# - Geçersiz kılma yönteminin bağımsız değişken türünü değiştir
orijinal sınıfları:
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; }
}
Benim devralmasını sınıfları:
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; }
}
Ama hata ile sona: Ben AlphaArgs kullanırsanız
CS0115 'Beta.OnSpecialEvent(BetaArgs)': no suitable method found to override
Ben yok Herhangi bir 'problem' ama eklemek istediğimden fazla parametreyi kaybederim.
Sana temel sınıf yöntemini geçersiz kılmak istediğinizde, ben bile için ...
: BetaArgs bir, kalıtım zinciri altındaki çünkü BetaArgs parametre OnSpecialEvent geçmek mümkün değildir? – Zuriki