ciy*_*n97 0 c# generics interface
我发现很难用英语描述这个,因为它不是我的第一语言所以我希望问题/标题有意义.
我需要知道我是否可以创建一个可以返回实现中任何类型的方法的接口.
我想制作一个可以注入另一个类的通用映射器.但我想知道我是否可以制作通用映射器,或者我是否需要为不同类型制作不同的接口.对我来说,制作相同但只有不同返回类型的不同接口看起来毫无意义?
有点像这样:
public interface IMapper()
{
T MapObject() where T = the return type
List<T> MapList() where T = the return type;
}
public class OrderMapper : IMapper()
{
OrderDetails MapObject()
{
mapping code...
return OrderDetails;
}
}
public class CustomerMapper : IMapper()
{
CustomerDetails MapObject()
{
mapping code...
return CustomerDetails;
}
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?或者我只是迟钝,我需要制作不同的接口.
泛型正是您所需要的:
public interface IMapper<T>
{
T MapObject();
List<T> MapList();
}
public class OrderMapper : IMapper<OrderDetails>
{
public OrderDetails MapObject()
{
// mapping code...
return new OrderDetails();
}
public List<OrderDetails> MapList()
{
throw new NotImplementedException();
}
}
public class CustomerMapper : IMapper<CustomerDetails>
{
public CustomerDetails MapObject()
{
// mapping code...
return new CustomerDetails());
}
public List<CustomerDetails> MapList()
{
throw new NotImplementedException();
}
}
Run Code Online (Sandbox Code Playgroud)