[Из песочницы] Применение паттерна CRTP в C#
CRTP (Curiously recurring template pattern) — идиома, ведущая свои корни из C++. Суть CRTP заключается в наследовании от шаблонного (generic) класса, шаблонным параметром которого является сам класс-наследник. В коде это выглядит достаточно просто: public class Base where T: Base { /* … */ } public class Derived: Base { /* … */ } Такой подход позволяет оперировать типом класса-наследника (T) в коде базового класса, например, явно приводить this к типу T. Рассмотрим пару вариантов практического применения.Читать дальше →