Допустим, у вас есть объект, который, например, мы будем называть ScoreHotChicksEngine. И скажем, что конструктор ScoreHotChicksEngine ожидает, что ему будет передан IDataReader, содержащий значения свойств, относящиеся, по-видимому, к оценке горячих цыпочек для одиноких вундеркиндов.
ScoreChicksEngine(IDataReader reader);
Хорошо, вот что я хотел бы собрать для ввода ...
Как разработчик, вы сочтете более полезным предположить, что читатель должен быть прочитан до его передачи в ScoreChicksEngine
IDataReader = command.ExecuteReader();
reader.Read();
ScoreChicksEngine SCE = new ScoreChicksEngine(reader);
или вы предполагаете, что сам механизм будет вызывать эту функцию и, возможно, иметь дело с пустыми значениями?
IDataReader = command.ExecuteReader();
ScoreChicksEngine SCE = new ScoreChicksEngine(reader);
if (SCE.HasReaderData()) doSomething();