我想要在使用泛型的接口中实现这些方法。但我得到错误。 例如 // Filter是这里的一个类。使用泛型实现多接口
public interface IComponent<T>
{
List<T> GetOrderSummary(Filter input);
T GetOrderDetails(string orderId);
List<T> GetOrderSummaryDetails(Filter input);
}
// ORDER A AND ORDER B ARE TWO MODEL CLASSES HERE
public class OrderDetails : IComponent<OrderA>,IComponent<OrderB>
{
public List<OrderA> GetOrderSummary(Filter input)
{
//Some logic
//lst of type OrderA
return lst;
}
public List<OrderB> GetOrderSummaryDetails(Filter input)
{
//Some logic
//lst of type OrderB
return lst
}
public OrderA GetOrderDetails(string orderId)
{
throw new NotImplementedException();
}
}
我得到错误的建筑,
订单明细没有实现接口成员IComponent.GetOrderSummaryDetails(过滤器).OrderDetails.GetOrderSummaryDetails无法实现IComponent.GetOrderSummaryDetails(过滤器)怎么一回事,因为它不具有匹配的
List<OrderA>
订单明细返回类型未实现接口构件IComponent.GetOrderSummary(滤波器).OrderDetails.GetOrderSummary不能怎么一回事,因为它实现IComponent.GetOrderSummary(过滤器)不具有的
List<OrderB>
订单明细匹配的返回类型未实现接口构件IComponent.GetOrderDetails(字符串).OrderDetails.GetOrderDetails(字符串)不能实现IComponent.GetOrderDetails(字符串)东阳它不具有匹配返回类型OrderB
请让我知道如何解决这些问题。
您是否尝试过使用显式接口实施? afaik方法仅通过它们的名称和输入参数来区分,而不是它们的返回值。 – Domysee
'OrderDetails'类是否仅包含3个方法?请注意,你不能隐式地实现这两个接口,因为那么你将有两个具有相同参数但返回值类型不同的方法,这在c#中是非法的。你可以明确地实现它们。 –