不可能(除了使用不同的名称)有几个具有相同名称但实现不同界面的通用方法?
public IList<T> List<T>() where T : class, IMyInterface1
{
return mylist
}
public IList<T> List<T>() where T : class, IMyInterface2
{
return mylist
}
谢谢,
答案 0 :(得分:11)
不,你不能仅仅通过泛型类型的重载来重载。您可以通过类型参数的数字重载,但不能超出它们的约束。
如果你实现接口,你可以使用显式接口实现 - 否则我建议只使用不同的名称。老实说,我经常发现,使用不同的名称会使事情更加清晰。
请记住,您提供的示例无论如何都会引入自然的歧义 - 如果类型参数实现两个接口,您希望调用什么?