Extension Methods no VB.NET.

Extenção de Métodos no VB.net. Aprenda como extender uma classe existente no .Net Framework 3.5

Extension Methods no VB.NET.

 

Olá, neste artigo vou falar um pouco sobre Extenção de Métodos no VB.net.

 

Afinal, o que é isso?

É a possibilidade de estender classes já existente no .Net  framework.

 

Imagine que você precise criar um método para checar se o email de um usuário é válido. Normalmente você criaria um método em sua Camada de Negócios para isso, mais pense se a própria classe string  já implementasse isso....

 

É isso que vamos fazer neste exemplo.

 

Antes de começar temos que atentar para alguns detalhes:

 

No VB.net, os métodos de extensão só podem ser criados em módulos;

 

O atributo usado para identificar um método de extenção é:    <Extension()>;

 

Este atributo está dentro do namespace: System.Runtime.CompilerServices;

 

 

 Agora vamos abrir um novo projeto no Visual Studio;

 

Escolha VB como linguagem e selecione WindowsApplication.

 

Vamos adicionar um novo módulo em Add New Item\ Module.

Coloque o nome de Extension.vb (o nome é indiferente)

Vamos criar um método para validar se o formato de email digitado é válido usando expressões regulares.

 

Para isso, digite o seguinte código:

 

Imports System.Runtime.CompilerServices

Imports System.Text.RegularExpressions

 

Module Extension

    <Extension()> Public Function IsValidEmail(ByVal s As String) As _ Boolean

        If Not (Regex.IsMatch(s, _

                "^[a-z0-9\._\-]+\@+[a-z0-9\._\-]+\.[a-z]+$")) Then

            Return False

        End If

        Return True

    End Function

 

End Module

 

Esté é o nosso método que irá estender a classe string, note que o compilador sabe o tipo que queremos estender pelo tipo passado no parâmetro.

 

 

Vamos criar uma interface bem simples com:

1 TextBox;

1 Button;

1 Label;

 

Vamos usar o seguinte código no evento Click do botão:

 

 

Private Sub Button1_Click(ByVal sender As System.Object, _

                ByVal e As System.EventArgs) Handles Button1.Click

 

        Dim email As String = TextBox1.Text

 

        MessageBox.Show(IIf(email.IsValidEmail(), _

                "Email Válido", "Email Inválido"), _

                "Menssagem", MessageBoxButtons.OK)

 

End Sub

 

 

Criamos uma string com o nome de email, e agora ela possui o método IsValidEmail() que nos retorna um Boleano.Todas as classes que pertecerem a este projeto terão a classe string extendida.

Executando o projeto você poderá conferir seu funcionamento.

*Os Extension Methods vieram para dar suporte ao LINQ, assim como as Lambda Expresion.

 

Podemos Concluir dizendo que o LINQ  nos trouxe muitos beneficios, dentre eles um bem interessante é o Extension Methods, que pode nos economizar um bom tempo na hora da codificação de nossas aplicações e vale a pena estudá-lo.

 

                                                                                                            

Artigos relacionados