隐式接口继承

时间:2015-12-29 20:28:53

标签: c# .net interface

我只是想知道这两个方法中的哪一个,来自IFirstInterface或ISecondInterface的bool IsReal(),我们现在实际上在ExampleClass中使用:

interface IFirstInterface
{
    bool IsReal(); 
}
interface ISecondInterface
{
    bool IsReal();
}



public class ExampleClass : IFirstInterface, ISecondInterface
{
    public bool IsReal() {}
    //public bool IsReal is IFirstInterface or ISecondInterface method.
}

拜托,有人可以解释一下隐式界面在C#中是如何运作的。

2 个答案:

答案 0 :(得分:2)

在Explicit Interface Implementation guide中,您可以阅读以下语句:

  

如果一个类实现了两个包含一个成员的接口   相同的签名,然后在类上实现该成员将导致   两个接口都使用该成员作为其实现。

您可以显式实现一个或两个接口以覆盖此行为:

interface IFirstInterface
{
    bool IsReal(); 
}
interface ISecondInterface
{
    bool IsReal();
}

public class ExampleClass : IFirstInterface, ISecondInterface
{
    // will be used for IFirstInterface
    bool IFirstInterface.IsReal(){}

    // will be used for ISecondInterface
    public bool IsReal(){}
}

答案 1 :(得分:0)

为清楚起见,您应该实现这两个功能 public bool IFirstInterface.IsReal(){} public bool ISecondInterface.IsReal(){}