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.