Em nosso primeiro artigo sobre VB, vamos falar sobre seus conceitos básicos, diante disso, vamos começar por Module, por ser o trecho de código mais elementar no VB.NET, mais adiante veremos outras formas de codificação como Classes, tipos e afins.
A palavra chave Module define um tipo de classe, com algumas exceções. Primeiro de tudo, qualquer função pública, subrotina, propriedade ou variável de instância ou membro definido dentro do escopo de um Module é definido como um membro compartilhado, ou seja, pode ser utilizado globalmente em sua aplicação, este tipo de membro definido permite ao desenvolvedor simular um escopo global dentro de sua aplicação. Abaixo, vemos a estrutura principal e padrão de um módulo, este é o Módulo principal de uma Console Application gerada pelo Visual Studio:
Vamos então, utilizar um projeto com o Module, em seu Visual Studio, crie na sua Solution um Projeto Console Application no VB com o nome DivertindoSeComModule e digite o código como no Trecho de Código abaixo:
Este programa ao ser executado, pressionando F5, retornará a seguinte saída:
Projetos com Multiplos Modules
Em nosso exemplo atual, mostramos que o método Main() pode acessar diretamente os métodos MostraBanner e ApresentaUsuario. Porque estes métodos estão definidos dentro do mesmo Module junto com Main(), não é necessário que coloquemos como prefixo destes métodos o nome de Module1. Porém, caso precise fazê-lo, precisamos refatorar Main() como segue:
No trecho acima, é completamente opcional esta sintaxe (não influencia nem mesmo na performance). Mas, digamos que vamos precisar criar um novo Módulo em nosso Projeto - chamado MeuModulo - dentro do mesmo arquivo .vb que cria um método parecido com o ApresentaUsuario de Module que contém a Main():
Agora, se você quiser chamar ApresentaUsuario de MeuModulo de dentro da Main(), aí sim você vai precisar colocar como prefixo explicitamente o nome do Módulo. Caso isso não aconteça, o método Main irá procurar por Module.ApresentaUsuario, se este método existir o compilador não retornará erro, mas caso não exista, teremos problemas. Vejamos abaixo a forma de chamada correta do método Main():
Novamente, para fixar: que um único projeto que define muitos Modulos não é necessário que se use o nome do Módulo como prefixo dos métodos que serão utilizados a não ser que os nomes sejam ambíguos assim como no caso do método ApresentaUsuario que existe em Module1 e MeuModulo, neste caso sim, precisamos informar ao compilador qual é o correto do contrário, Main() pegará de seu Module1.
Então, vamos criar mais um Módulo neste nosso projeto atual, chamado ModuloMatematico, como segue:
Como estamos no mesmo Projeto, basta colocar o nome Soma no metodo Main() de Module1 que ele irá funcionar corretamente:
Não se preocupe com relação a explicação de o que é uma Function e o que significa o ByVal, posto que mais adiante, estarei escrevendo um artigo sobre Funções e Subrotinas com VB.NET.
Módulos não são "instanciáveis"
Outra regra do tipo Module é que ele não pode ser diretamente criado usando a palavra new - qualquer tentativa de fazê-lo irá retornar em erro de compilação. Como o trecho abaixo irá retornar em erro:
Uma melhor explicação é que um Módulo apenas expõe membros compartilhados.
Membros dos Módulos
Para incrementar nosso estudo sobre Tipos de Módulos, saiba que módulos podem ter membros adicionais além de apenas subrotinas e funções. Se o leitor amigo quiser definir campos tais como propriedades ou eventos, você é livre para fazê-lo. Por exemplo, você precisa atualizar MeuModulo para receber uma única parte de um dado contendo uma String publica. Veja que o método ApresentaUsuario() agora irá imprimir este valor quando solicitado:
Agora, vamos implementar o método refatorado:
Este foi o nosso primeiro artigo sobre VB.NET como prometido para os nossos leitores que precisam aprender e dominar tal linguagem, primeiramente, vamos explicar e detalhar o básico da linguagem sem muita firula, porque muito material sobre programação fala do be-á-bá que chega a ser cansativo, tentei ser o mais sucinto possível e sempre usando um Projeto por artigo.
Valorize sempre o trabalho em equipe porque não se consegue atingir nenhum resultado sozinho.
Obrigado por visitar o Blog, é um prazer tê-lo como leitor e até o próximo artigo.
A palavra chave Module define um tipo de classe, com algumas exceções. Primeiro de tudo, qualquer função pública, subrotina, propriedade ou variável de instância ou membro definido dentro do escopo de um Module é definido como um membro compartilhado, ou seja, pode ser utilizado globalmente em sua aplicação, este tipo de membro definido permite ao desenvolvedor simular um escopo global dentro de sua aplicação. Abaixo, vemos a estrutura principal e padrão de um módulo, este é o Módulo principal de uma Console Application gerada pelo Visual Studio:
Module Module1 Sub Main() End Sub End Module
Vamos então, utilizar um projeto com o Module, em seu Visual Studio, crie na sua Solution um Projeto Console Application no VB com o nome DivertindoSeComModule e digite o código como no Trecho de Código abaixo:
Module Module1 Sub Main() 'Executa a subrotina MostraBanner MostraBanner() 'Pega o nome do usuário e diz "Olá" ApresentaUsuario() Console.ReadKey() End Sub Sub MostraBanner() Dim currColor As ConsoleColor = Console.ForegroundColor 'Muda a cor do texto para amarela Console.ForegroundColor = ConsoleColor.Yellow Console.WriteLine("*** Bem vindo ao nosso primeiro projeto em VB ***") Console.WriteLine(" Este programinha simples, ilustra o papel ") Console.WriteLine("do Tipo Module") Console.WriteLine("*************************************************") 'Devolve a cor original Console.ForegroundColor = currColor End Sub Sub ApresentaUsuario() Dim userName As String Console.Write("Entre com o seu nome: ") userName = Console.ReadLine() Console.WriteLine("Olá {0}. É um prazer tê-lo conosco.", userName) End Sub End Module
Este programa ao ser executado, pressionando F5, retornará a seguinte saída:
"*** Bem vindo ao nosso primeiro projeto em VB ***
Este programinha simples, ilustra o papel
do Tipo Module
*************************************************
Entre com o seu nome: Luis Gabriel N. Simas
Olá Luis Gabriel N. Simas. É um prazer tê-lo conosco."
Projetos com Multiplos Modules
Em nosso exemplo atual, mostramos que o método Main() pode acessar diretamente os métodos MostraBanner e ApresentaUsuario. Porque estes métodos estão definidos dentro do mesmo Module junto com Main(), não é necessário que coloquemos como prefixo destes métodos o nome de Module1. Porém, caso precise fazê-lo, precisamos refatorar Main() como segue:
Sub Main() 'Executa a subrotina MostraBanner Module1.MostraBanner() 'Pega o nome do usuário e diz "Olá" Module1.ApresentaUsuario() Console.ReadKey() End Sub
No trecho acima, é completamente opcional esta sintaxe (não influencia nem mesmo na performance). Mas, digamos que vamos precisar criar um novo Módulo em nosso Projeto - chamado MeuModulo - dentro do mesmo arquivo .vb que cria um método parecido com o ApresentaUsuario de Module que contém a Main():
Module MeuModulo Public Sub ApresentaUsuario() Console.WriteLine("Olá Usuário Maroto...") End Sub End Module
Agora, se você quiser chamar ApresentaUsuario de MeuModulo de dentro da Main(), aí sim você vai precisar colocar como prefixo explicitamente o nome do Módulo. Caso isso não aconteça, o método Main irá procurar por Module.ApresentaUsuario, se este método existir o compilador não retornará erro, mas caso não exista, teremos problemas. Vejamos abaixo a forma de chamada correta do método Main():
Sub Main() 'Executa a subrotina MostraBanner MostraBanner() 'Pega o nome do usuário e diz "Olá" MeuModulo.ApresentaUsuario() Console.ReadKey() End Sub
Novamente, para fixar: que um único projeto que define muitos Modulos não é necessário que se use o nome do Módulo como prefixo dos métodos que serão utilizados a não ser que os nomes sejam ambíguos assim como no caso do método ApresentaUsuario que existe em Module1 e MeuModulo, neste caso sim, precisamos informar ao compilador qual é o correto do contrário, Main() pegará de seu Module1.
Então, vamos criar mais um Módulo neste nosso projeto atual, chamado ModuloMatematico, como segue:
Module ModuloMatematico Function Soma(ByVal x As Integer, ByVal y As Integer) Return x + y End Function Function Subtracao(ByVal x As Integer, ByVal y As Integer) Return x - y End Function End Module
Como estamos no mesmo Projeto, basta colocar o nome Soma no metodo Main() de Module1 que ele irá funcionar corretamente:
Sub Main() ... ... 'Soma dois numeros Console.WriteLine("O resultado da soma é {0}.",Soma(2,2)) 'Subtrai dois Números 'Colocar o nome do módulo como prefixo neste caso, é opcional 'É apenas uma demonstração de generalidade Console.WriteLine("O resultado da subtração é {0}", ModuloMatematico.Subtracao(2,2)) Console.ReadKey() End Sub
Não se preocupe com relação a explicação de o que é uma Function e o que significa o ByVal, posto que mais adiante, estarei escrevendo um artigo sobre Funções e Subrotinas com VB.NET.
Módulos não são "instanciáveis"
Outra regra do tipo Module é que ele não pode ser diretamente criado usando a palavra new - qualquer tentativa de fazê-lo irá retornar em erro de compilação. Como o trecho abaixo irá retornar em erro:
'Isto não existe no .NET Framework 4.0 Dim m as New Module1()
Uma melhor explicação é que um Módulo apenas expõe membros compartilhados.
Membros dos Módulos
Para incrementar nosso estudo sobre Tipos de Módulos, saiba que módulos podem ter membros adicionais além de apenas subrotinas e funções. Se o leitor amigo quiser definir campos tais como propriedades ou eventos, você é livre para fazê-lo. Por exemplo, você precisa atualizar MeuModulo para receber uma única parte de um dado contendo uma String publica. Veja que o método ApresentaUsuario() agora irá imprimir este valor quando solicitado:
Module MeuModulo Public ContaUsuario As String Public Sub ApresentaUsuario() Console.WriteLine("Olá {0}",ContaUsuario) End Sub End Module
Agora, vamos implementar o método refatorado:
Sub Main() ... 'Grava o nome do usuário e chama ApresentaUsuario ContaUsuario = "Fred" MeuModulo.ApresentaUsuario() ... End Sub
Este foi o nosso primeiro artigo sobre VB.NET como prometido para os nossos leitores que precisam aprender e dominar tal linguagem, primeiramente, vamos explicar e detalhar o básico da linguagem sem muita firula, porque muito material sobre programação fala do be-á-bá que chega a ser cansativo, tentei ser o mais sucinto possível e sempre usando um Projeto por artigo.
Valorize sempre o trabalho em equipe porque não se consegue atingir nenhum resultado sozinho.
Obrigado por visitar o Blog, é um prazer tê-lo como leitor e até o próximo artigo.
Nenhum comentário :
Postar um comentário