-1
2つの継承クラスがあります。これらのクラスにはいくつかの静的変数があります。私がしたいのは、オブジェクトの値をその子クラス名に設定し、親オブジェクトを持つ子クラスメソッドを呼びたいということです。サンプルコードは次のとおりです。変数の値をクラス名に設定する
class BlueSwitch : Switch {
public static string Foo = "bar";
}
class Green : Switch {
public static string Foo = "bar2";
}
Switch oSwitch = BlueSwitch;
Console.WriteLine(oSwitch.Foo); // should print out "bar" but instead i get compiler error
oSwitch = GreenSwitch;
Console.WriteLine(oSwitch.Foo); // should print out "bar2" but instead i get compiler error
これ以外のアイデアは何ですか?
になります。スイッチoSwitch = BlueSwitch;はコンパイルされません。 'Switch oSwitch = new BlueSwitch(); 'のようなインスタンスを作成する必要があります。 – RafaelC
クラスのインスタンスを経由して呼び出すには、インスタンスを' new'する必要があります。そして、それらのクラスの中で、値。しかし、静的な 'BlueSwitch.Foo'を介して呼び出すだけではどうですか?読み込み専用ではなく、誰でも変更できるので、静的フィールドを公開するのは悪い考えです – pinkfloydx33