これはちょっとわかりにくいですが、現在のプロジェクトでC#を使用していますが、派生クラスのメンバ変数をオーバーライドする方法を見つけようとしていますが、オーバーライドされた変数には基本クラスメソッドでアクセスします。物事をより面白くするためには、オーバーライドされたメンバ変数が静的である方が望ましいでしょう(これは以下のサンプルコードには示されていません)。C#基本クラスメソッドで使用されるメンバー変数のオーバーライド
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"
};
}
これが動作しない理由についてどのような考えや、それを回避する方法:ここで
私のサンプルコードはありますか?
メンバー変数はメソッドのような多型ではない影響を与えます。配列を初期化して、各サブクラスに目的の値を格納します。 –