C# Когда класс должен быть sealed?


#1

Почему некоторые классы (даже из того же .Net) помечают как sealed? В каких ситуациях нужно помечать класс как sealed и зачем? Есть ли какие-то преимущества использования запечатанных классов?


#2
  1. Классы, которые реализуют функции безопасности, так что исходный объект не может быть "олицетворен".

  2. Если класс не предназначен для наследования, подклассы могут нарушать работу класса (через то же переопределение методов).

Ключевое слово sealed сообщает CLR, что еще нет класса для поиска методов, и это ускоряет её работу (ведь некоторые проверки теперь могут быть опущены).

На сегодняшний день существует много инструментов повышения производительность, которые имеют отдельный флажок, при включении которого происходит запечатывание всех классов не имеющих наследников.