在我的项目中,我有以下三个接口,这些接口由管理合并具有不同结构的各种业务对象的类实现.
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);
}
Run Code Online (Sandbox Code Playgroud)
这很好用,但我宁愿有一个IMerger接口指定可变数量的TSource参数,如下所示(下面的例子使用params;我知道这不是有效的C#):
public interface IMerger<params TSources, TDestination>
{
TDestination Merge(params TSource sources, TDestination destination);
}
Run Code Online (Sandbox Code Playgroud)
有没有办法实现这一点,或功能相同的东西?