Я работаю над небольшим проектом, и я столкнулся с этой проблемой.Уплотнение интерфейса после его реализации
Выход проекта представляет собой библиотеку, содержащую интерфейс. Я хотел бы реализовать этот интерфейс и запечатать функции в нем, как это возможно, если:
public interface ITest
{
void SomeMethod();
}
class A : ITest
{
public sealed override SomeMethod()
{
}
}
Идея заключается в том, чтобы иметь интерфейс доступный для всех, и есть специализированный класс, который реализует его. Исключением является то, что я хочу убедиться, что если кто-то создаст специализированный класс типа A, он/она не сможет изменить поведение метода.
Проблема заключается в том, что вы не можете поместить ключевое слово «переопределить», поскольку метод не объявлен как «виртуальный» в интерфейсе. И вы не можете объявить его «виртуальным» в интерфейсе, так как это запрещено. И вы не можете удалить ключевое слово «переопределить», так как оно необходимо «запечатанным».
Любая обходная или мозговая стратегия будет приветствоваться, но если кто-то может придумать решение, включающее интерфейс, я был бы очень рад узнать его!
Спасибо!
EDIT: Забудьте об этом вопросе! Как сказал Ани, я забыл, что по умолчанию метод в C# запечатан. Похоже, это всегда хорошо, чтобы вернуться к основам один раз в то время ...
+1 Дои! просто. Не думал об этом! – gideon
Ахаха так просто, пренебрегайте моим глупым ответом: P –
+1 для обнаружения потерянного java dev –