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

public sealed interface IMyInterface
{
}

Возвращает «Измененный 'sealed' недействителен для этого элемента».

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

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

Править

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

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

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

18
задан weston 27 March 2012 в 15:07
поделиться