クラスの型を知らなくても、そのクラスのインスタンスで const クラス値にアクセスする必要があり、クラス自体でもアクセスできる必要があります。これどうやってするの?
私が達成したいことの例:
public abstract class A { }
public class B : A
{
public const int X = 50;
}
...
A b = new B();
b.X ???
これは非常に不完全ですが、達成したいのは、型 A の変数から B の X 定数にアクセスすることです (それが理にかなっている場合)。
これは私がこれを達成しようとした1つの方法です:
public abstract class A
{
public abstract int X { get; }
}
public class B : A
{
public const int X = 50;
public override int X { get { return B.X; } } // or return 50;
}
ただし、これの問題は、B で X の定義が重複しているため、C# ではこれをコンパイルできないことです。より良い方法はありますか?または、私の唯一のオプションは、それらに別の名前を付けることですか?