Честно говоря, я не совсем вижу в этом смысл.
Поскольку this .__ curious_geek указывает в своем ответе , запечатанный класс не может быть унаследован, поэтому его использование в качестве ограничения может показаться бессмысленным.
Но нет никакой гарантии, что запечатанный класс никогда не будет «незапечатан», т. Е. Что разработчик может изменить свою реализацию, чтобы сделать его более пригодным для наследования, а затем удалить модификатор sealed
из определения класса (или просто категорически удалите ключевое слово sealed
без всякой причины).
Я знаю, что многие разработчики на самом деле поощряют эту практику: не удалять ключевое слово sealed
как таковое, а вместо этого свободно добавлять ключевое слово sealed
и поддерживать наследование только тогда, когда принято решение сделать это. сделано явно (и на данный момент, да, удалив ключевое слово sealed
).
Так что я не уверен, почему вы не можете использовать тип запечатанного класса в качестве общего ограничения. В конце концов, вы всегда можете использовать тип класса, который, как оказалось, не имеет никаких производных классов, даже если он не запечатан. Мне кажется, что эти два сценария не сильно отличаются друг от друга.
Я, наверное, что-то упустил, хотя. Я уверен, что Эрик Липперт может дать довольно убийственное объяснение.