я хочу что бы в абстрактном базовом классе Base было константное поле которое должно задаваться у каждого потомка Derived1, Derived2 своим значением.
UPD: Забыл спросить: поле должно быть статическим?
UPD: Переформулирую вопрос.
Есть базовый класс В в котором хочу обязать всех потомков реализовывать статическое поле size, которое будет защищено от изменения даже внутри класса. Есть 2 потомка: класс Х и Y. В классе X поле size должно равняться 6. В классе Y поле должно равняться 10.
Ответ
public class Base
{
public int ConstValue { get; private set; }
public Base(int aConstValue)
{
ConstValue = aConstValue;
}
}
public class Child1 : Base
{
public Child1() : base(1)
{
}
}
public class Child2 : Base
{
public Child2() : base(2)
{
}
}
@andreycha - А лучше сделать свойство абстрактным.
public abstract class Base
{
public abstract int ConstValue { get; }
}
public class Child1 : Base
{
public override int ConstValue { get { return 1; } }
}
public class Child2 : Base
{
public override int ConstValue { get { return 2; } }
}
Комментариев нет:
Отправить комментарий