Нет веских причин запечатывать его. Это не вредно, чтобы извлечь из этого. Раньше я придерживался противоположного мышления - оставляй только те вещи, которые ты собираешься открыть для людей. Но, оглядываясь назад, это не имеет смысла. .NET придерживается позиции, что методы не являются виртуальными по умолчанию, но классы по умолчанию незапечатаны. List<T>
просто следует той же практике.
Где вы хотели бы запечатать класс, это когда он переопределяет виртуальные методы, но дальнейшее создание подклассов не просто и не очевидно. Может быть немного полезно получить из коллекции, такой как Dictionary<TKey,TValue>
, чтобы придерживаться параметров известного типа и избегать их ввода, если они используются в приложении. Например, может быть, у вас есть класс QueryString, производный от Dictionary<String,String>
.
А поскольку нет виртуальных методов, на самом деле нет ничего, от чего можно защитить класс, запечатав его.