мои личные предпочтения следующие
Интерфейс:
void Build(Thing thing);
void Build(IEnumerable<Thing> things);
реализация:
void Build(Thing thing)
{
Build(new [] { thing });
}
void Build(IEnumerable<Thing> things)
{
//do stuff
}
причина, по которой я предпочитаю использовать этот шаблон, заключается в том, что он гарантирует, что вы останетесь DRY , в то же время предоставляя вам возможность иметь несколько перегрузок, в отличие от способа params
, где вам придется преобразовывать любые не массив, перечисляемый в массив.