Подрядчик, в котором я работаю, использует extension methods
для реализации CRUD
в известных внутренних классах, которыми мы владеем. Я говорю, что лучше использовать обычный inheritance
по extension methods
по следующим причинам.
- Использование методов расширения запутывает, скрывает и путает источник методов
CRUD
. - Я предполагаю, что
extension methods
сильно используетreflection
(что медленнее).
Его логика: "Он скомпилирован, так быстро". Возможно, я ошибаюсь... но только потому, что он скомпилирован, не означает, что он не использует отражение, и не означает, что он быстрее обычного наследования.
Итак, мои вопросы:
- Как
extension methods
работать под капотом? - Лучше ли использовать
inheritance
илиextension methods
в классах WELL-KNOWN, которые вы СОБСТВЕННЫ?