Novedades Framework 3.5, Métodos de Extensión

Es curioso el siguiente nuevo mecanismo que aparece en el .NET Framework 3.5,
namespace MetodosExtension
{
  public static class MisExtensiones
  {
    public static bool ContieneLaZ(this String str)
    {
      //Código que a partir de un string retorna verdadero
      //si éste contiene la letra ‘Z’
    }
  }
}
Que luego te deja hacer cosas como esta;
string variable = “escuché un zumbido”;
if (variable.ContieneLaZ())
{
}
A esta nueva facilidad que incluye el entorno de desarrollo se le llaman extensiones. Como podréis apreciar lo que se ha hecho es definir en una clase separada un nuevo método asociado a un objeto (String) que el propio framework de .NET trae consigo. La magia para conseguir esto íºltimo reside en la forma en la que se define el parámetro del método “ContieneLaZ”, que como véis utiliza el identificador “this” previo a la definición de la variable y el tipo.
La principal gracia de todo esto es la capacidad de poder dotar de más potencia a clases ya definidas sin necesidad de utilizar tipos derivados y sin modificar el tipo original.
Apuntar además que las extensiones se mantienen también cuando heredamos la clase original sobre la que se ha hecho la extensión. Por ejemplo, si extendemos la clase “Coche” con nuevas operaciones, y luego creamos una clase “CocheVolador”, esta íºltima, también podrá contar con las extensiones definidas en su clase padre.
Saludos.
Miguel.

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.