ну.. в принципе можно
расширения с
дженериком нарисовать
на первый взгляд (не сверяю код, именно на глазок) мне кажется это было бы даже уместнее -
если методов всего три, городить иерархию классов явно не стоит
ps и уж точно не стоит, когда они совпадают до символа
совет - если это дочерние классы от какого то необходимого "бай-дизайн-среды-исполнения" (как Form к примеру), и если вы
не переопределяете обязательные виртуальные методы, то есть
код где вызываются дополнительные методы полностью вами контролируется - расширения позволяют писать более чистый и читаемый код
в смысле создается экземпляр базового типа, где надо, через точку применяем расширения как родные