Это связано с C #, но на самом деле вопрос довольно общий.
Допустим, у меня есть базовый класс
abstract class Base {
protected List<string> MyList = new List<string>();
protected abstract void FillMyList();
}
class Derived : Base {
protected void FillMyList() {
MyList.Add("test");
MyList.Add("test2");
}
}
Это нормально, производный класс заполняет MyList, определенный в базовом классе.
Однако, кроме абстрактного имени метода (FillMyList) - которое намекает на то, что вы на самом деле ДОЛЖНЫ заполнять MyList - нет никакой подсказки о том, что этот метод должен означать.
Есть ли лучший способ обеспечить или (лучше) настоятельно рекомендовать, чтобы вам приходилось заполнять MyList при наследовании от Base?
Может быть, FillMyList объявлен как:
protected abstract void FillMyList(List<string> listToFill);
Что вы предлагаете?