我有两个接口使用相同的方法
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 次 |
最近记录: |