Почему интерфейсы нельзя пометить как запечатанные?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Почему интерфейсы нельзя пометить как запечатанные?

Сообщение Anonymous »

Код: Выделить всё

public sealed interface IMyInterface
{
}
Выдает «Измененное значение «запечатано» недопустимо для этого элемента».

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

Но почему я не могу указать, что для интерфейса не должен быть определен подинтерфейс, или есть ли способ, только не с запечатанным?

Редактировать

Мне следовало приложить некоторые усилия, чтобы объяснить, почему мне это нужно. Я часто вижу цепочки наследования интерфейсов, в которых вместо этого разработчику следует использовать композицию. Sealed идеально подходит для этого в классах, и мне было интересно, есть ли способ обеспечить то же самое для интерфейсов. Поскольку, на мой взгляд, ненужное наследование усложняет рефакторинг и поддержку.

Редактировать 2

Судя по комментариям и сообщениям, деревья наследования интерфейсов не могут быть такими же сложными, как деревья наследования объектов. Как и при наследовании от другого интерфейса IX, все, что вы говорите, это «также необходимо реализовать IX». И предотвращение этого не приносит никакой пользы.

Подробнее здесь: https://stackoverflow.com/questions/989 ... -as-sealed
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»