J'ai une classe abstraite qui implémente IDisposable, comme ceci:C# abstraite méthode Dispose
public abstract class ConnectionAccessor : IDisposable
{
public abstract void Dispose();
}
Dans Visual Studio 2008 Team System, j'ai couru l'analyse du code sur mon projet et l'une des mises en garde qui est venu était le suivant:
Microsoft.Design: Modifier 'ConnectionAccessor.Dispose() de sorte qu'il appelle Dispose (vrai), puis appelle GC.SuppressFinalize sur l'instance actuelle de l'objet ('ceci' ou 'moi' dans Visual Basic), puis revient.
Est-il juste être stupide, me disant de modifier le corps d'une méthode abstraite, ou devrais-je faire quelque chose de plus dans une instance dérivée de Dispose
?
Pourquoi avez-vous besoin d'ajouter Dispose() à votre interface? Si elle est héritée de IDisposable, la méthode Dispose() fait déjà partie de votre interface. –
Seth, vous devez implémenter tous les membres de l'interface. Le laisser dehors ne compilerait pas. –