在派生自泛型基类的"非泛型"子类上实现接口时遇到了一些问题:
public class Parent<T> where T : struct, Enum
{
}
public class Child : Parent<MyEnum>
{
}
interface ISomeInterface<T> where T : struct, Enum
{
void SomeMethod(Parent<T> parent);
}
class SomeClass : ISomeInterface<MyEnum>
{
public void SomeMethod(Child child)
{
return;
}
}
它不会编译,因为"SomeClass不实现接口..."
当我更改为
public void SomeMethod(Parent<MyEnum> child)
百事大吉.
但第一个代码不也应该起作用吗,因为Child
实际上是Parent<MyEnum>
?