Задать вопрос
@Akaero

Зачем может понадобиться сокрытие методов интерфейса?

Добрый день, знатоки! Приведите пожалуйста пример, когда мне нужно сокрыть метод интерфейса, объявив его явно.
public sealed class Sample: ISample
{
    public void InterfaceMethod()
    {
        // do something here
    }
 
    void ISample.SecondInterfaceMethod()
    {
        // do something here that should be used only by ISample interface
    }
}


Вот статейка, как это делается
https://gedgei.wordpress.com/2009/08/24/hiding-pro...
  • Вопрос задан
  • 116 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Array явно реализует ICollection.Count, чтобы не засорять интерфейс одинаковыми свойствами.
Ответ написан
Комментировать
AlexanderYudakov
@AlexanderYudakov
C#, 1С, Android, TypeScript
У нас есть класс с публичными методами. Этот класс используется в 100500 различных местах.

Проходит время, мы решаем расширить функциональность класса и добавить реализацию интерфейса, который раньше реализован не был.

Да вот незадача, имя и аргументы одного из методов нового интерфейса полностью совпадает с одним из публичным методов нашего класса. При этом два метода: старый и новый имеют совершенно различное значение и сливать их в один метод нельзя.

Получается:
1) слить мы методы в один не можем, у них разное назначение;
2) переименовать старый метод не можем - он уже много где используется;
3) реализовать новый метод нового интерфейса все-таки надо.

В этом случае приходит на выручку конструкция "INewInterface.SameMethod()".
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы