В моем проекте у меня есть следующие три интерфейса, которые реализуются классами, которые управляют слиянием различных бизнес-объектов, которые имеют разные структуры.
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
; я знаю, что это недопустимо С#):
public interface IMerger<params TSources, TDestination>
{
TDestination Merge(params TSource sources, TDestination destination);
}
Это там какой-нибудь способ добиться этого, или что-то функционально эквивалентное?