Я согласен с вашей интуицией, что в большинстве случаев она кажется не совсем удачной. Я бы согласился, что возвращать что-то лучше, так как просто делает более ясным, что что-то изменяется. Просмотр возвращаемого значения позволяет сразу понять, что происходит.
Я думаю, что это немного лучше, хотя (в большинстве случаев в любом случае):
public void someMethod()
{
...
var someObject = new SomeObject();
someObject.Load(reader);
}
И тогда, очевидно, в классе SomeObject
у вас будет
public void Load(SqlDataReader reader)
{
this.Id = reader.GetGuid(0);
}
Идея состоит в том, чтобы отдавать предпочтение методам экземпляров над статическими. Зачем создавать объект и передавать его данные, если вы можете просто заставить объект работать с собственными данными?