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