不可能(除了使用不同的名称)有几个具有相同名称但实现不同接口的通用方法?
public IList<T> List<T>() where T : class, IMyInterface1
{
return mylist
}
public IList<T> List<T>() where T : class, IMyInterface2
{
return mylist
}
Run Code Online (Sandbox Code Playgroud)
谢谢,
Jon*_*eet 11
不,你不能仅仅通过泛型类型的重载来重载.您可以通过类型参数的数量进行重载,但不能根据其约束进行重载.
如果您正在实现一个接口,您可以使用显式接口实现 - 否则我建议使用不同的名称.老实说,我经常发现使用不同的名字会使事情变得更清晰.
请记住,您给出的示例无论如何都会引入自然歧义 - 如果类型参数实现了两个接口,您希望调用什么?