我有两个接口使用相同的方法
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 A和Interface B,他们都拥有一个称为成员Foo,这是一个方法,那么如果你在一个类中实现这些接口,你唯一的方法Foo只能算作对他们俩的.这是设计的,坦率地说,我认为没有别的方法可以解决这个问题.
要单独实现它们,您必须使用Explicit Interface Implementation,即在Foo方法名称前加上接口名称和点,如InterfaceA.Foo和InterfaceB.Foo.
引用C#规范:
20.3完全限定的接口成员名称
接口成员有时由合格的接口成员名称引用.合格的接口成员名称包含一个名称,该名称标识声明成员的接口,后跟一个点,后跟成员的名称.
| 归档时间: |
|
| 查看次数: |
306 次 |
| 最近记录: |