ссылки) для него, а не для переформулирования этого (я думаю).
аписи, я уже видел этоподключить пункт но я не могу понять, в чем проблема в поддержке этого.
Скажем, у меня есть следующий код:
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 Явные реализации членов интерфейса) есть две причины.
Однако ничего не сказано о том, почему вы не можете сделать эти методы виртуальными.
Update2:
Учитывая ответы, я думаю, что я должен перефразировать реальный вопрос здесь. Если вышеуказанные 2 причины являются причиной, по которой явная реализация интерфейсов стала возможной в первую очередь. Почему это будет проблемой, если вы сделаете метод виртуальным.