Ich habe eine C# -Klasse, die virtuelle Operationen bereitstellt. Für jede Operation existiert eine synchrone und eine asynchrone Version.Eine Warnung anzeigen, wenn nur eines der beiden Methoden oder Eigenschaften überschrieben wird
public class Foo{
public virtual void Bar(){..};
public virtual Task BarAsync(){..};
...
}
Ich möchte den Compiler eine Warnung aus, wenn nur eine Version der Operation zeigt, außer Kraft gesetzt wird (die synchrone oder asynchrone Version des Betriebs), wie der Compiler warnt, wenn ein Equals
überschreibt ohne GetHashCode
zwingende oder und umgekehrt.
Auf breiter Ebene befragt: Ist es möglich zu erzwingen, dass das Überschreiben einer Methode oder Eigenschaft das Überschreiben anderer Eigenschaften oder Methoden erzwingt (über Compilerwarnungen).
Sie würden einen [roslyn Analysator] (https://github.com/dotnet/roslyn-analyzers) zu schreiben. –
Wie HimBromBeere geantwortet hat, scheint es logischer zu sein, einfach eine abstrakte Basisklasse zu erstellen und den tatsächlich vorhandenen Code, der in Ihrem Fall überschrieben würde, in eine bestehende Implementierung zu übernehmen. – Nyerguds
Die Klasse ist ein Teil eines kleinen Frameworks und die vorgeschlagene Architektur verkompliziert ihre Verwendung, da das Konsumieren von Foo nicht auf die gleiche Weise erfolgt wie von Foo. – HCL