C#中的多接口继承

14 c# oop interface

我有两个接口使用相同的方法

   interface FirstInterface
   {
     int add(int x, int y);
   }

   interface SecondInterface
   {
      int add(int x, int y);
   }

   class TestInterface:FirstInterface,SecondInterface
   {
     public TestInterface() {}

     public int add(int x, int y)
     {
        return x + y;
     }
   }
Run Code Online (Sandbox Code Playgroud)

在我的班级

    static void Main(string[] args)
    {
        TestInterface t = new TestInterface();
        int result = t.add(3, 4);

    }
Run Code Online (Sandbox Code Playgroud)

编译器不会给出任何错误,并显示结果..

这样对吗 ??我们不应该使用FirstInterface.add??

它是否意味着接口在编译时被解析

Sae*_*ati 15

它是接口的显式或隐式实现的主题.

如果您实现Interface AInterface B,他们都拥有一个称为成员Foo,这是一个方法,那么如果你在一个类中实现这些接口,你唯一的方法Foo只能算作对他们俩的.这是设计的,坦率地说,我认为没有别的方法可以解决这个问题.

要单独实现它们,您必须使用Explicit Interface Implementation,即在Foo方法名称前加上接口名称和点,如InterfaceA.FooInterfaceB.Foo.

引用C#规范:

20.3完全限定的接口成员名称

接口成员有时由合格的接口成员名称引用.合格的接口成员名称包含一个名称,该名称标识声明成员的接口,后跟一个点,后跟成员的名称.