In meinem Projekt habe ich die folgenden drei Schnittstellen, die von Klassen implementiert werden, die die Zusammenführung einer Vielzahl von Geschäftsobjekten mit unterschiedlichen Strukturen verwalten.
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);
}
Das funktioniert gut, aber ich hätte lieber eine IMerger
Schnittstelle, die eine variable Anzahl von TSource
Parameter, etwa so (das folgende Beispiel verwendet params
(Ich weiß, dass dies kein gültiges C# ist):
public interface IMerger<params TSources, TDestination>
{
TDestination Merge(params TSource sources, TDestination destination);
}
Gibt es eine Möglichkeit, dies zu erreichen, oder etwas funktionell Gleichwertiges?