Чтобы уточнить, да, вам нужно установить значения по умолчанию в конструкторе для объектов, производных от класса. Вам нужно будет убедиться, что конструктор существует с правильным модификатором доступа для построения там, где он используется. Если объект не создан, например у него нет конструктора (например, статических методов), тогда значение по умолчанию может быть установлено полем. Причина здесь в том, что сам объект будет создан только один раз, и вы не создаете его экземпляр.
@ Даррен Копп - хороший ответ, чистый и правильный. И, повторюсь, вы МОЖЕТЕ писать конструкторы для абстрактных методов. Вам просто нужно получить к ним доступ из базового класса при написании конструктора:
Конструктор в базовом классе:
public BaseClassAbstract()
{
this.PropertyName = "Default Name";
}
Конструктор в производном / конкретном / подклассе:
public SubClass() : base() { }
Дело в том, что переменная экземпляра, полученная из базового класса, может похоронить ваше имя базового поля. Установка текущего значения экземпляра объекта с помощью this. позволит вам правильно сформировать ваш объект относительно текущего экземпляра и требуемых уровней разрешений (модификаторов доступа), на которых вы его создаете.
person
Zack Jannsen
schedule
31.07.2012