Say you have an object which, for the sake of example, we will call the ScoreHotChicksEngine. And say that the ScoreHotChicksEngine's constructor is expecting to be passed an IDataReader containing property values pertaining to, apparantly, Scoring Hot Chicks for Lonely Geeks.
ScoreChicksEngine(IDataReader reader);
Ok, here's what I would like to gather input on...
As a developer would you find it more useful to assume that the reader must be read before being passed into the ScoreChicksEngine
IDataReader = command.ExecuteReader();
reader.Read();
ScoreChicksEngine SCE = new ScoreChicksEngine(reader);
or would you assume that the engine itself would call that function and possibly deal with the empty values?
IDataReader = command.ExecuteReader();
ScoreChicksEngine SCE = new ScoreChicksEngine(reader);
if (SCE.HasReaderData()) doSomething();