Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
不可能(除了使用不同的名称)有几个具有相同名称但实现不同接口的泛型方法吗?
public IList<T> List<T>() where T : class, IMyInterface1 { return mylist } public IList<T> List<T>() where T : class, IMyInterface2 { return mylist }
谢谢,
不,您不能仅通过泛型类型约束来重载。您可以通过类型参数的数量重载,但不能根据它们的约束。
如果你正在实现一个接口,你可以使用显式接口实现——否则我建议只使用不同的名称。老实说,我经常发现使用不同的名字会让事情更清楚。
请记住,您给出的示例无论如何都会引入自然歧义 - 如果类型参数实现了两个接口,您希望调用什么?