ссылки) для него, а не для переформулирования этого (я думаю).

аписи, я уже видел этоподключить пункт но я не могу понять, в чем проблема в поддержке этого.

Скажем, у меня есть следующий код:

public interface IInterface
{
    void Method();
}

public class Base : IInterface
{
    virtual void IInterface.Method()
    {
        throw new NotImplementedException();
    }
}

В чем проблема с виртуальным идентификатором? Наличие виртуального модификатора позволило быoverride указывая, что есть другая реализация в базовом классе. Теперь я могу заставить его работать, удалив виртуальный метод и создав производный класс следующим образом:

public class Derived : IInterface
{
    void IInterface.Method()
    {
        throw new NotImplementedException();
    }
}

однако таким образом у меня действительно нет никаких признаков того, что я что-то переопределяю.

Обновить:
В соответствии со спецификацией C # (часть: 20.4.1 Явные реализации членов интерфейса) есть две причины.

Сокрытие определенных методов (для которых я использую это).Наличие 2 функций с одинаковой сигнатурой, но разными типами возвращаемых данных (например, полезно для IClonable).

Однако ничего не сказано о том, почему вы не можете сделать эти методы виртуальными.

Update2:
Учитывая ответы, я думаю, что я должен перефразировать реальный вопрос здесь. Если вышеуказанные 2 причины являются причиной, по которой явная реализация интерфейсов стала возможной в первую очередь. Почему это будет проблемой, если вы сделаете метод виртуальным.

Ответы на вопрос(5)

Ваш ответ на вопрос