У меня есть несколько методов, которые практически одинаковы, за исключением того, что они имеют различное количество параметров универсального типа. Внутренний код очень и очень похож:
public Set[] CreateSet<TFirst, TSecond>(List<TFirst> first, List<TSecond> second)
{
Set[] result = new Set[2];
result[0] = CreateSet(first);
result[1] = CreateSet(second);
return result;
}
public Set[] CreateSet<TFirst, TSecond, TThird>(List<TFirst> first, List<TSecond> second, List<TThird> third)
{
Set[] result = new Set[3];
result[0] = CreateSet(first);
result[1] = CreateSet(second);
result[2] = CreateSet(third);
return result;
}
...
И так далее. У меня есть эти методы до 7 параметров общего типа. Как вы можете видеть, они практически все одинаковы, за исключением того, что они создают наборы разных размеров.
Мне не нравится это дублирование кода, поэтому можно было бы реорганизовать этот код в один частный метод, который они будут вызывать внутри. Или я должен рассмотреть какой-либо другой способ сделать это? *