Ho una classe # c che fornisce operazioni virtuali. Per ogni operazione esiste una versione sincrona e asincrona.Mostra un avvertimento quando viene esclusa solo una coppia di metodi o proprietà
public class Foo{
public virtual void Bar(){..};
public virtual Task BarAsync(){..};
...
}
desidero avere il compilatore mostra un avviso se viene sostituita una sola versione dell'operazione (sincrono o la versione asincrona dell'operazione) come il compilatore avverte quando si ignora Equals
senza sovrascrivere GetHashCode
o vice versa.
Interrogato in modo più generale: È possibile applicare l'override di un metodo o proprietà per forzare l'override di altre proprietà o metodi (tramite avvisi del compilatore).
Si dovrà scrivere un [analizzatore Roslyn] (https://github.com/dotnet/roslyn-analyzers). –
Come ha risposto HimBromBeere, sembra più logico quindi semplicemente creare una classe di base astratta e inserire qualsiasi codice effettivamente esistente che verrà sovrascritto nel tuo caso qui in un'implementazione esistente. – Nyerguds
La classe fa parte di un piccolo framework e l'architettura proposta ne complica l'utilizzo perché consumare Foo non viene eseguito allo stesso modo di Foo. – HCL