В моем проекте у меня есть следующие три интерфейса, которые реализуются классами, которые управляют объединением различных бизнес-объектов, имеющих различную структуру.
public interface IMerger<TSource, TDestination>
{
TDestination Merge(TSource source, TDestination destination);
}
public interface ITwoWayMerger<TSource1, TSource2, TDestination>
{
TDestination Merge(TSource1 source1, TSource2 source2, TDestination destination);
}
public interface IThreeWayMerger<TSource1, TSource2, TSource3, TDestination>
{
TDestination Merge(TSource1 source1, TSource2 source2, TSource3 source3, TDestination destination);
}
Это хорошо работает, но я бы предпочел иметь один IMerger
интерфейс, который задает переменное число TSource
параметров, что-то вроде этого (пример ниже использует params
; я знаю, что это не допустимый C #):
public interface IMerger<params TSources, TDestination>
{
TDestination Merge(params TSource sources, TDestination destination);
}
Есть ли способ добиться этого или что-то функционально эквивалентное?