Код: Выделить всё
public sealed interface IMyInterface
{
}
В некотором смысле я могу понять что интерфейс должен быть наследуемым, иначе класс не сможет его реализовать.
Но почему я не могу указать, что для интерфейса не должен быть определен подинтерфейс, или есть ли способ, только не с запечатанным?
Редактировать
Мне следовало приложить некоторые усилия, чтобы объяснить, почему мне это нужно. Я часто вижу цепочки наследования интерфейсов, в которых вместо этого разработчику следует использовать композицию. Sealed идеально подходит для этого в классах, и мне было интересно, есть ли способ обеспечить то же самое для интерфейсов. Поскольку, на мой взгляд, ненужное наследование усложняет рефакторинг и поддержку.
Редактировать 2
Судя по комментариям и сообщениям, деревья наследования интерфейсов не могут быть такими же сложными, как деревья наследования объектов. Как и при наследовании от другого интерфейса IX, все, что вы говорите, это «также необходимо реализовать IX». И предотвращение этого не приносит никакой пользы.
Подробнее здесь: https://stackoverflow.com/questions/989 ... -as-sealed