regardant le SDK Project Server 2010 (trouvé here dans le réflecteur .NET, j'ai trouvé quelque chose d'intéressant qui me confond.Est-il possible de ne pas implémenter une méthode héritée d'une interface en C#?
Apparemment, la classe SvcProject.ProjectClient
en ProjectServerServices.dll
hérite de System.ServiceModel.ClientBase<Project>
, qui est une classe abstraite qui implémente l'System.IDisposable
Cependant, quand j'inspecte la classe SvcProject.ProjectClient
(ce qui n'est pas abstrait), il n'y a pas de méthode Dispose
. Ce qui donne? Je pensais que chaque méthode héritée des interfaces devait être implémentée dans une implémentation concrète (sinon quelle est l'utilisation des interfaces) Est-ce que .NET Reflector me ment? Microsoft a-t-il, pour une raison quelconque, contourner cette exigence? Que se passe-t-il?
Les classes abstraites peuvent avoir des implémentations, donc elles sont probablement implémentées dans ClientBase <>. Sinon, comment une classe abstraite pourrait-elle différer d'une interface? Autre que d'empêcher l'héritage multiple c'est. –
@Brian Rudolph Oui, j'ai effectivement vérifié la classe de base, mais je l'ai manquée parce que c'était 'IDisposable.Dispose' au lieu de simplement' Dispose'. –