Monday, February 13, 2012

Métodos de extensión

Cuando estamos desarrollando nuestro propio framework para utilizarlo en nuestros proyectos, generalmente creamos una clase "Utilitarios" en la cual programos métodos que nos servirán de mucho en el desarrollo, métodos del tipo "shared" (si utilizas vb.net y "static" en C#)

Esto "nos ayudaba" a utilizar aquél método sin necesidad de crearnos un objeto de la clase a la cual pertenece, es decir, poder llamarlo directamente desde otros lugares. Pero, por qué digo "nos ayudaba"? Porque felizmente están los "Extensions Methods".

Métodos de Extensión
Nos permiten agregar métodos a las clases existentes de .NET Framework o a nuestras propias clases.

Ejemplo

Nos creamos nuestro módulo (en VB.NET 2008/2010) que se llame "Extensiones". A ese módulo le importamos System.Runtime.CompilerServices para extender los métodos. Mi método de ejemplo es el siguiente:


Imports System.Runtime.CompilerServices
Imports System.Text.RegularExpressions


Module Extensiones

     _
    Public Function hasEspecialCharacters(ByVal input As String) As Boolean
        If Regex.IsMatch(input, "^[a-zA-Z0-9ñÑáéíóúÁÉÍÓÚ]+$") Then
            Return False
        Else
            Return True
        End If
    End Function
End Module


El método del ejemplo valida dada una entrada si ésta tiene caracteres especiales, devuelve true si los tiene, false si no los tiene. También tuve que importar RegularExpressions para que el ejemplo me funcione.

No te olvides escribir "<Extension()> _" antes de la firma de tu método. (Sólo ahí, el que aparece luego al final del módulo como se ve en el ejemplo es solo por el intérprete html de blogspot jeje, ignóralo.)

Luego, la llamada sería así:



HaPPy CoDiNg

No comments:

Post a Comment