Страницы

Поиск по вопросам

четверг, 4 апреля 2019 г.

Константное поле для родительского класса

я хочу что бы в абстрактном базовом классе 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; } } }

Комментариев нет:

Отправить комментарий