¿Cómo funcionan los métodos de extensión bajo el capó?

Un contratista en el que trabajo utiliza extension methods para implementar CRUD en clases internas bien conocidas que poseemos . Digo que es mejor usar la inheritance normal sobre los extension methods por las siguientes razones.

  • El uso de métodos de extensión confunde, oculta y confunde la fuente de los métodos CRUD .
  • Asumo que los extension methods hacen un uso intensivo de la reflection (que es más lento).

Su lógica es: “Está comstackdo, así que es rápido”. Tal vez me equivoque … pero solo porque está comstackdo no significa que no use la reflexión, ni significa que sea más rápido que la herencia normal.

Así que mis preguntas son:

  1. ¿Cómo funcionan los extension methods bajo el capó?
  2. ¿Es mejor usar extension methods inheritance o extension methods en las clases de WELL-KNOWN que usted PROPIO?