在以下代码中,为什么需要F(Test x)
功能。每当F(TestInterface x)
传递给TestInterface
时,是否应该调用F
函数?因此,不应该F(TestInterface x)
同时满足接口SillyInterface<Test>
和SillyInterface<TestInterface>
吗?
有没有办法在这里避免F
的两个定义?
public class Test : TestInterface, SillyInterface<Test>
{
public static void Main() {}
public void F(TestInterface x) {}
// Why is the definition below required?
public void F(Test x) { F((TestInterface) x); }
}
public interface TestInterface : SillyInterface<TestInterface> {}
public interface SillyInterface<T>
{
void F(T x);
}