Buscar este blog

lunes, 16 de mayo de 2011

Métodos de extensión

Los métodos de extensión son una forma muy sencilla y conveniente de agregar funcionalidad a código existente en .Net Framework se usan básicamente cuando necesitamos agregar funcionalidad a un código que no podemos cambiar, son muy usados en la librería de clases base, donde se utilizan por ejemplo para implementar Linq.
La forma de crear un método de extensión es crear una clase estática en la cual los métodos de extensión tienen como característica que el primer argumento de la función esta precedido por el modificador this y este parámetro es el que indica el tipo de datos que extiende el método.
Por ejemplo para extender el tipo string[]:

   1:  static class StringExtension {
   2:      public static void PrintAll(this string[] strings) {
   3:          foreach(string i in strings) {
   4:              Console.WriteLine(i);
   5:          }
   6:      }
   7:  }
Y podemos usar el método como si estuviera incluido en el tipo string[]:

   1:  static void Main(string[] args) {
   2:      string[] strings = new string[] { "hola", "mundo", "con", "extensiones"};
   3:      strings.PrintAll();
   4:      Console.ReadLine();
   5:  }

Cabe mencionar que no esta recomendado usar mucho los métodos de extensión, si es posible añadir los métodos en la clase que los necesita es mejor incluirlos directamente.

No hay comentarios:

Publicar un comentario