Zero 0 #1 Posted December 2, 2006 Olá desenvolvedores .net! Já vimos muito sobre variáveis no Visual Basic .net, mas ainda sim podemos ir mais a fundo! A princípio vamos conhecer um Option chamado Option Explicit! • Option Explicit Options são opções que podemos dar ao compilador para melhorar o desenvolvimento em termos de depuração de erros. O Option Explicit, é a opção que retorna um erro quando a variável for utilizada sem ter sido declarada quando está ativada. Isso impede que ocorram erros de digitação no nome da variável no código. O Option Explicit não permite o uso de variáveis dessa forma: Public Sub Main()idade% = 16End SubEntão ele não permitirá também algo como este código: Private Sub Main()Dim Nome As StringNime = "Raphael"Console.WriteLine(Nome)End SubNote o erro de digitação em que a variável Nome é chamada como "Nime", com o Option Explicit desativado é provavel que este erro passaria despercebido. Para ativar o Option Explicit escreva na primeira linha do projeto: Option Explicit OnDaqui pra frente sempre utilizaremos esta opção ativada. • Regras de Escopo Chamamos de "escopo" as diversas "partes" de um projeto ou módulo(arquivo-fonte de um projeto). Variando o escopo em que a variável é declarada alteramos também o limite sobre o qual ela exerce poder. Para começar vamos aprender o conceito de variáveis locais e globais! • Conceito Inicial Quando falamos em variáveis globais e locais, muitos dos que se dizem entendidos já vem dizendo que são as variáveis que estão limitadas a apenas uma rotina, a rotina em que foi declarada. Eu prefiro dizer que depende do ponto de vista. Se estamos falando de variáveis globais e locais de um módulo, isto é um arquivo do código-fonte, variável local é aquela que está limitada a apenas uma rotina e a global é a que pode ser utilizada em todo o módulo. Já se estamos falando de um projeto inteiro, com vários módulos, variável local é aquela que só pode ser utilizada em um módulo do projeto e global é aquela que pode ser utilizada no projeto inteiro! Para começar vamos falar sobre variáveis em um módulo! • Variáveis Locais(Em uma rotina) Essas variáveis são as que tivemos mais contato até agora. Toda variável que declaramos dentro de uma rotina é uma variável local. Exemplo: Public Sub Main()Dim variavelLocal As StringEnd SubEla só tem existe dentro dessa rotina, não podemos fazer por exemplo: Public Sub Main()Dim variavelLocal As StringEnd SubPublic Sub AlteraVar()variavelLocal = "Olá mundo"End SubEsse código retornaria um erro por estar utilizando uma variável não declarada caso o Option Explicit esteja ativado e criará uma nova variável caso esteja desativado. • Variáveis Globais(Em um módulo) Essas variáveis podem ser utilizadas em todo o módulo, assim podemos interagir entre as rotinas do módulo, assim quando aprendermos melhor a criar nossas próprias rotinas poderemos desenvolver melhores aplicações! Exemplo: Dim Nome As StringPublic Sub Main()EscreveNome()Console.WriteLine(Nome)End SubPrivate Sub EscreveNome()Nome = Console.ReadLine()End SubUma rotina pega o valor de Nome, na outra esse valor é escrito no terminal. Estas mesmas variáveis chamadas Globais quando se trata de comparações internas no módulo, são as variáveis Locais quando as comparações passam a ser sobre todo o projeto. • Variáveis Globais(No projeto) Essas são as variáveis que exercem poder sobre todo o projeto, todos os módulos e rotinas! São declaradas em um módulo(Module) com a palavra chave "Public". Exemplo: 'No arquivo module.vbPublic Nome As String'No arquivo main.vbPublic Sub Main()Nome = Console.ReadLine()Console.WriteLine(Nome)End Sub • Palavras-Chave para DeclaraçõesDim - Utilizado em declarações "normais", segue o padrão da Private quando utilizada de forma global em um módulo. Private - Limita a variável ao módulo inteiro, mas não a outros arquivos do projeto. Public - Torna a variável pública, isto é exerce poder em todo o projeto. Static - Torna a variável estática. Essas são as palavras-chave principais! • Variáveis Estáticas Variáveis estáticas resgatam seu valor, assim não são resetadas na linha da declaração. Tem seu valor sempre salvo! Veja o segundo exemplo! Exemplos da Aula: Escopo de Variáveis: Module Module1 Private Idade As Integer Private Nome As String Sub Main() Console.Write("Nome: ") Nome = Console.ReadLine Console.Write("Idade: ") Idade = Console.ReadLine VerificaIdade() Console.ReadLine() End Sub Sub VerificaIdade() If Idade < 18 Then Console.WriteLine("Desculpe {0}, você é menor de idade.", Nome) Else Console.WriteLine("Bem vindo(a) {0}, você é maior de idade.", Nome) End If End SubEnd ModuleVariáveis Estáticas: Module Module1 Sub Main() Contar() Contar() Contar() Console.ReadLine() End Sub Sub Contar() Static Contador As Integer Contador += 1 Console.WriteLine(Contador) End SubEnd ModuleAbraços e até a próxima aula! Share this post Link to post Share on other sites