public interface IMerge
{
byte[] Process(List<Image> req);
}
public class Merge : IMerge
{
public byte[] Process ( List<Image> req)
{
// processing
}
}
现在,以上代码是许多人使用的一种库。 dll。
我想将此接口方法作为支持List的通用输入参数。怎么做?
我的呼叫者具有以下内容:
public class Image
{
public string Name { get; set;}
public byte[] ImageData { get; set ;}
}
伙计,我不想将我的业务对象项目dll引用到我的可重用组件(即IImage)上。我想知道是否有一种使IMerge通用的方法,所以我仍然能够实现与上面相同的效果
答案 0 :(得分:1)
我认为您想要这个,但是我不确定我是否完全理解您的问题
public byte[] Process<T>(List<T> req) {
...
}
答案 1 :(得分:1)
您可以使您的接口及其实现通用,以接受您想要发送给的类
public interface IMerge<T>
{
byte[] Process(List<T> req);
}
public class Merge<T> : IMerge<T>
{
public byte[] Process(List<T> req)
{
// processing
}
}
您可以像使用它一样
//Create sample List of Image class
List<Image> images = new List<Image>();
//Pass above list to generic method in Merge class
var result1 = new Merge<Image>().Process(images);