a deshoras

Los métodos extensores.

Posteado por: César en: Septiembre 30, 2009

Los métodos extensores, nos permiten “extender” la funcionalidad de una clase sin que sea necesario usar herencia o polimorfismo pudiendo añadirle funcionalidad a clases “core” del Framework.

Hay que tener en cuenta, que estos métodos aunque son muy útiles, en ningún caso pueden sustituir a la herencia de clases.

Para crear un método extensor, necesitamos un código tal como el siguiente:

public static string ToMD5(this string str)
{
MD5 md5 = MD5CryptoServiceProvider.Create();
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] stream = null;
StringBuilder sb = new StringBuilder();
stream = md5.ComputeHash(encoding.GetBytes(str));
for (int i = 0; i < stream.Length; i++) sb.AppendFormat("{0:x2}", stream[i]);
return sb.ToString();
}

Como veis, el metodo extensor, ha de ser estático y ademas, va a recibir siempre como parametro el objeto que lo llama, a este objeto tenemos que añadirle el parametro this.

Así de facil y sencillo. Este tipo de metodos, los había usado con JavaScript y ActionScript, y ahora, mis drugitos, los podemos usar con C#, toda una maravilla.

Bajate el código y échale un ojo, y cuando uses este tipo de metodos, cuidado, ten en cuenta que no estan pensandos para sustituir la funcionalidad que nos proporciona la herencia, y como bien dicen aquí, es interesante agruparlos en un mismo namespace (que en una única clase).

Nunca han sido santos de mi devoción los planetas, aunque desde hace unos días, no paro de escuchar su “corrientes circulares en el tiempo”, canción mucho más madura que la mayoría de sus exitos.

2 comentarios para "Los métodos extensores."

Gracias por el trackback! Buen post y muy buenos contenidos en tu blog! felicidades!!!

Dnd.

Gracias a ti, y adelante con tu blog que es interesante.

Saludos.

Escribe un comentario

¿Qué es esto?

Hola soy César y este es mi blog y su temática va a ser lo relacionado con el desarrollo web, ya sea usabilidad, diseño o programación.

Espero que os guste. ;-)

Y si quieres saber más de mí, además de esto, me encanta navegar por ahí descubriendo cosas nuevas, escuchar música, leer, cine, lo relacionado con la cultura del siglo XXI (desde el pulp al punk), la fotografía, salir por ahí, viajar, comer etc.