Я кодую схему стану для вбудованого пристрою. У мене є базовий / абстрактний клас під назвою State, і тоді кожен дискретний (конкретний) клас класу реалізує абстрактний клас класу.
У державному класі я маю кілька абстрактних методів. Якщо я не реалізую абстрактні методи в дискретному (конкретному) класі, Visual Studio видасть помилку приблизно так:
... Помилка 1 'myConcreteState' не реалізує успадкований абстрактний член 'myAb абстрактState'
Тепер: я намагаюся створити властивість String для кожного стану під назвою StateName. Щоразу, коли я створюю новий конкретний клас, мені потрібно визначати StateName. Я хочу, щоб VS видав помилку, якщо я не використовую її. Чи є простий спосіб це зробити?
Я спробував це в абстрактному / базовому класі:
public abstract string StateName { get; set; }
Але мені не потрібно застосовувати методи Get and Set у кожній державі.
Переглянуте запитання: В ідеальній ситуації для кожного класу State потрібно було б визначати StateName і бути успадкованим від абстрактного базового класу.
StateName = "MyState1"; //or whatever the state's name is
Якщо цього твердження відсутнє, Visual Studio генерує помилку, як описано вище. Це можливо і якщо так, то як?