Логически говоря, чтобы полностью извлечь выгоду из этой новой функции, как она была задумана, вы должны упомянуть ключевые слова «запечатанные» и «разрешения» вместе.
Мой главный вопрос (и последующие вопросы, основанные на ответе на основной вопрос) будет следующим:
- Запечатаны и разрешены ключевые слова, используемые в другом контексте, кроме их совместного использования для достижения запечатанных типов?
Если нет, то почему ключевого слова разрешений при разработке этой функции было недостаточно, чтобы определяется компилятором, что он имеет дело с классом или интерфейсом, который не должен расширяться или реализовываться другим классом или интерфейсом?
Почему необходимо явно упоминать ключевое слово «sealed»?
Помогает ли это компилятору быть более эффективным, потому что ключевое слово «запечатанное» появляется первым, и на основе алгоритма компиляции имеет смысл фильтровать классы, имеющие ключевое слово «запечатанное», чтобы оно адаптировало поток компиляции таким образом, чтобы не выполнять дополнительные шаги, поскольку оно запечатано? - Если да, то какие?
Пожалуйста, приведите примеры, которые действительно приносят пользу, исключая очевидную часть, с которой может справиться компилятор. с классами или интерфейсами, которые могут просто запечатать ключевое слово без наличия разрешений (что, насколько мне известно, не имеет смысла).
Не оспариваю способ разработки этой функции, просто пытаюсь понять ее причину, поскольку я не смог найти вариант использования, в котором закрытие имеет смысл или его рекомендуется использовать без разрешений. ключевое слово.
Подробнее здесь: https://stackoverflow.com/questions/790 ... -interface