📎 Модификатор sealed в C#
В c# можно запретить наследоваться от класса или record при помощи модификатора sealed. Это довольно полезно, когда вы, например, создаете представления (DTO) для апи или какие-то конкретные значения типа элементов модели - таким образом вы запрещаете с помощью sealed создавать иерархии наследования там, где они не нужны.
‼️Но есть еще один момент, про который не все знают: - JIT компилятор применяет оптимизацию для типов, помеченных sealed
В случае, если класс/record открыт для наследования, компилятор заранее не знает, какой метод будет вызван во время выполнения кода программы - придется обращаться к специальной таблице виртуальных методов. А для sealed JIT этого делать не требуется - это экономит доли секунды, что при работе с миллионами объектов в коллекциях дает ощутимый прирост производительности.
📌Рекомендуется по-умолчанию закрывать все типы, а наследование открывать только когда это действительно потребуется - это по сути оптимизация из коробки 😎