Мне нужно получить доступ к значению класса const в экземпляре этого класса, не зная типа класса, а также иметь доступ к нему в самом классе. Как я могу это сделать?
Пример того, чего я хочу достичь:
public abstract class A { }
public class B : A
{
public const int X = 50;
}
...
A b = new B();
b.X ???
Это очень неполно, но я хочу добиться доступа к константе X B из переменной типа A через полиморфизм (если это имеет смысл).
Это один из способов, которым я пытался добиться этого:
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;
}
Однако проблема заключается в том, что C# не позволит этому скомпилироваться из-за двойного определения X в B. Итак, как мне это сделать? Есть ли способ лучше? Или мой единственный вариант - назвать их по-другому?
public override int X {...
? если вы используете{ get { return 50; }}
, это работает. - person MAV   schedule 16.05.2013public const int X = 50;
и просто переопределить. - person MAV   schedule 16.05.2013int xvalue = B.X;
и вам не нужна переменная любого типа, константа есть константа. - person terry   schedule 16.05.2013