OK donc j'admets tout de suite que c'est un peu vicieux ... mais ça sert un but logique. J'utilise C# pour un projet en cours et j'essaie de trouver un moyen de remplacer une variable membre dans une classe dérivée, mais j'accède à la variable surchargée dans une méthode de classe de base. Pour rendre les choses plus "divertissantes", il serait préférable que la variable membre surchargée soit statique (ceci n'est PAS montré dans l'exemple de code ci-dessous).C# Variables de variables membres utilisées par la méthode de la classe de base
Voici mon exemple de code:
class baseclass
{
protected string[] array = null;
public string method()
{
string str = "";
foreach (string x in this.array)
{
str += x + " ";
}
return str;
}
}
class subclass1 : baseclass
{
new string[] array = new string[]
{
"class1value1",
"class1value2",
"class1value3",
"class1value4"
};
}
class subclass2 : baseclass
{
new string[] array = new string[]
{
"class2value1",
"class2value2",
"class2value3",
"class2value4"
};
}
Toute pensée pour expliquer pourquoi cela ne fonctionne pas et une façon de contourner le problème?
Les variables membres ne sont pas des méthodes polymorphiques. Initialiser le tableau pour contenir les valeurs souhaitées dans chaque sous-classe. –