Type parameter 'T' has the same name as the type parameter from outer type '…'
问题 public abstract class EntityBase { ... } public interface IFoobar { void Foo<T>(int x) where T : EntityBase, new(); } public interface IFoobar<T> where T : EntityBase, new() { void Foo(int x); } public class Foobar<T> : IFoobar, IFoobar<T> where T : EntityBase, new() { public void Foo(int x) { ... } void IFoobar.Foo<T>(int x) { Foo(x); } } I get a compiler warning: Type parameter 'T' has the same name as the type parameter from outer type '...' I tried doing: void IFoobar.Foo<U>(int x) { Foo