J'ai une classe qui est utilisée comme classe parent et qui a la fonction c() que je veux remplacer dans la classe dérivée mais la fonction de la classe de base c est appelée. Voici le code de pseudo pour mon class.may être ce mot-clé donne un tout sens différent ensembleAppel d'une fonction dérivée de la classe Derived dans C#
public Class BaseRepository
{
public A()
{
this.c();
}
public B()
{
this.c();
}
protected virtual c()
{
enter code here
}
}
quand je tire cette classe
class customRepo:BaseRepository
{
protected override c()
{
...does something
}
}
Ma fonction de prise en pension personnalisée n'utilise pas le c()
de classe de repo personnalisé, mais la fonction de base repo est utilisée. Quelqu'un peut-il me dire pourquoi cela se produit ???
Cela semble bien à condition que vous êtes réellement affaire à une instance de la classe customRepo. Votre problème pourrait-il être que votre fonction c surchargée a un appel à 'base.c();'? – McAden
Comment l'appelez-vous? Avez-vous instancié un Repo personnalisé ou un BaseRepository? Si vous instanciez la classe de base, elle ne sait rien de la classe dérivée. – BradleyDotNET
+1 McAden et Bradley.Net. Veuillez montrer comment vous appelez c() et éventuellement des parties pertinentes dans la méthode. – Mzn