我有接口:
public interface IQueryContainerGenerator
{
QueryContainer Generate(object source);
}
public interface IQueryContainerGenerator<in T>: IQueryContainerGenerator where T: class
{
QueryContainer Generate(T source);
}
如果我使用通用版本的接口,则需要对IntelliSense方法签名QueryContainer Generate(object source)
隐藏。
我如何实现它?
我尝试在类CompositeQueryContainerGenerator<T>: IQueryContainerGenerator<T> where T: class
中使用显式接口实现,但未解决问题:
public class CompositeQueryContainerGenerator<T>: IQueryContainerGenerator<T> where T: class
{
QueryContainer IQueryContainerGenerator.Generate(object source)
{
// some logic
}
QueryContainer IQueryContainerGenerator<T>.Generate(T source)
{
return ((IQueryContainerGenerator)this).Generate(source);
}
}
如果我使用接口继承,也许原则上该问题无法解决。 如果是这样,哪种方法更可取?这两个接口的类实现是分开的吗?