A partir de .NET 3.5 es una característica denominada métodos de extensión. Los métodos de extensión permiten a los desarrolladores extender clases con sus propios métodos de instancia. Este es un concepto a menudo llamado mix-ins en otros idiomas.
Tomemos por ejemplo el siguiente fragmento de código.
En el ejemplo anterior, trivial, vemos una clase auxiliar que tiene un método estático para determinar si una cadena es “short”. Mientras que el ejemplo es ridículo, es útil en ilustrar el deseo de raíz para los métodos de extensión. A menudo, nuestro código fuente está lleno de clase auxiliar muy similar a la anterior.
También está lleno de basura alrededor de su código es sin duda usos de este tipo de clases de servicios públicos. Así, por ejemplo, tendría usos tales como:
Los métodos de extensión de .NET 3.5 proporcionan un atajo sintáctico para lo anterior. Para cambiar nuestra función IsShort para que sea una extensión de System.String, la palabra clave this a la lista de parámetros.
Eso es todo lo que se necesita para convertir un método auxiliar ordinario en un método de extensión en .NET 3.5. Hay, sin embargo, algunas reglas a tener en cuenta con el método de extensión.
- Solo los métodos estáticos de las clases estáticas pueden ser métodos de extensión.
- La palabra clave “this” solo se puede aplicar al primer parámetro.
- Los métodos de extensión solo son visibles cuando su espacio de nombres contenedor se importa a través de la instrucción “using” de C’s.
Con esas reglas simples que comienza a convertir las aplicaciones auxiliares estáticas en extensiones en las clases que prestan servicio, permite una personalización más fácil de las bibliotecas principales de .NET (u otras bibliotecas de terceros 3a).