Je suis désolé si je demande quelque chose de stupide mais je suis complètement un débutant en C# et ASP.NET. J'ai une erreur dans mon code et je ne le comprends pas. Je travaille sur Visual Studio 2008.La classe C# n'implémente pas le membre abstrait hérité
Dans cette ligne de code:
public class SQLFAQProvider : DBFAQProvider
Je reçois cette erreur:
Moby.Commerce.DataAccess.FAQ.SQLFAQProvider
does not implement inherited abstract memberMoby.Commerce.DataAccess.FAQDBFAQProvider.DeleteFAQbyID(int)
Quand je vais à DBFAQProvider
l'erreur est dans cette ligne de code:
public abstract DBFAQ DeleteFAQbyID(int fAQID);
Que dois-je modifier pour le corriger?
Cela n'a pas de sens pour moi qu'il nécessite le mot-clé override lorsqu'un membre abstrait doit être implémenté. – DFTR
IMO le mot-clé 'override' est requis à juste titre dans la classe concrète car le membre abstrait peut être surchargé dans une classe dérivée de celle concrète. Sinon, il semblerait qu'un membre de la classe dérivée remplace un membre non virtuel ou non abstrait. De plus, le CLR doit être capable de faire la distinction entre une implémentation du membre abstrait et un nouveau membre potentiel qui cache l'abstrait. La vraie question est alors de savoir pourquoi cela n'est pas permis, c'est-à-dire de surcharger et de cacher simultanément un membre (qu'il soit abstrait ou virtuel) puisqu'il n'y aura pas d'ambiguïté. – GDS