OK, quindi ammetto proprio dall'alto che questo è un po 'impreciso ... ma serve a uno scopo logico. Sto usando C# per un progetto corrente e sto cercando di trovare un modo per sovrascrivere una variabile membro in una classe derivata, ma accedere alla variabile sostituita in un metodo di classe base. Per rendere le cose più "divertenti" sarebbe preferibile se la variabile membro sottoposto a override fosse statica (questo NON è mostrato nel codice di esempio seguente).C# Sostituzioni variabili del membro utilizzate dal metodo della classe base
Ecco il mio codice di esempio:
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"
};
}
Qualsiasi pensiero sul perché questo non funziona e un modo per aggirare l'ostacolo?
variabili membri non sono polimorfici come metodi. Inizializza la matrice per contenere i valori desiderati in ciascuna sottoclasse. –