Что такое неявная и явная реализация интерфейсов в точечной сети? - PullRequest
1 голос
/ 30 августа 2010

Что такое неявная и явная реализация интерфейсов? В каком сценарии он использует? зачем это нужно? в точечной сети

Ответы [ 2 ]

1 голос
/ 30 августа 2010

Неявная реализация - это когда вы реализуете элемент интерфейса без указания имени интерфейса одновременно.

public interface IFoo 
{
    void Bar();
}

public class ClassA : IFoo 
{
    //this is implicit
    public void Bar() 
    {

    }
}

public class ClassB : IFoo 
{
    //this is explicit:
    void IFoo.Bar()
    {

    }
}

Вам нужна явная реализация, когда вы реализуете два (или более) интерфейса, которые имеют функцию / свойствос таким же именем и подписью.В этом случае компилятору необходимо указать, какая реализация принадлежит какому интерфейсу.

1 голос
/ 30 августа 2010

в явной реализации вы используете как имя интерфейса, так и имя метода, который вы реализуете.Это позволяет вам использовать несколько методов с одним и тем же именем в вашем классе (например, если класс реализует несколько интерфейсов)

public interface I
{
  void A();
}

public class myClass: I
{
  public void I.A()
  {
    // do some stuff
  }
}

прочитать этот документ, это довольно ясно объясняет, почему вам может потребоваться явная реализация: http://blogs.msdn.com/b/mhop/archive/2006/12/12/implicit-and-explicit-interface-implementations.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...