调用以接口作为参数的方法

时间:2018-03-26 01:48:57

标签: c#

在以下代码中,为什么需要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);
}

0 个答案:

没有答案