Ich weiß, die Frage ist verwirrend, aber es ist schwer, einen guten Titel für dieses Problem zu finden, also werde ich hier mehr beschreiben.C# Gibt es eine Möglichkeit, dass meine Basisklasse und abgeleitete Klasse Interface-Methoden getrennt implementieren können?
ich eine Schnittstelle A mit 2 Methoden, IsValidRow()
und IsFileValid()
ich eine Basisklasse B und eine abgeleitete Klasse C Das Ziel hier ist, dass ich die Basisklasse wollen IsFileValid()
implementieren, so dass es von allen vererbt werden können die Klassen, die von der Basisklasse und jeder abgeleiteten Klasse abgeleitet sind, um IsValidRow()
zu implementieren.
Das Problem ist, dass IsFileValid()
ruft IsValidRow()
innerhalb. Wenn ich das tue
B:A
A erfordert IsValidRow()
in B. umgesetzt werden
Derzeit meine abgeleiteten Klasse C erbt von der Basisklasse und der Schnittstelle atm.
Es macht mir nichts aus, alles zu restrukturieren, solange die Anforderungen für die beiden Methoden erfüllt sind (Eine wird einmal in einer Basisklasse oder etwas implementiert und übernimmt die andere, während die andere in jeder abgeleiteten Klasse implementiert wird)
interface IFileValidator
{
Pair<bool, string> IsValidRow(List<string> row);
bool IsFileValid(string file);
}
class FileValidator : IFileValidator
{
public bool IsFileValid(string file)
{
// calls IsValidRow()
IsValidRow();
}
}
class FacilitiesCalendarValidator : FileValidator, IFileValidator
{
public Pair<bool, string> IsValidRow(List<string> row)
{
//stuff
}
}
Wenn 'B' als 'Resümees deklariert ist, ich glaube nicht, es Implementierungen für alle Methoden zu versorgen hat, auch wenn sie von einer Schnittstelle kommen. –