Compreender escopo no visual basic .net

programas VB.NET são subdivididas em zonas, assim como os Estados Unidos é dividido em estados, municípios e cidades. Assim como agentes da lei têm diferentes tamanhos de jurisdições (policiais da cidade, soldados do estado, e FBI, que podem ir em qualquer lugar), linhas VB.NET de programação têm intervalos de influência. Esta gama de influência, chamado escopo,

se aplica principalmente para variáveis ​​(mas também pode ser aplicado a procedimentos - subs e funções -, bem como classes inteiras).

Aceder a uma variável

Muitas vezes você deseja consultar ou alterar o valor em uma variável, mas se ou não essa variável é acessível a você depende do seu escopo. Por exemplo, você sempre pode acessar uma variável a partir de dentro o mesmo procedimento (funções, sub-rotinas e eventos são todos os procedimentos).

Para ver como isso funciona, digite o seguinte em seu módulo de código:

Private Sub Form1_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
N dim As String = “Este”
MsgBox (N)
End Sub

Pressione F5 e observe que o MsgBox não tem nenhum problema exibindo o valor da variável N.

Ele exibe Este. Agora digite outra sub logo abaixo da sub Form1_Load na janela de código:

Sub pública TryIt ()
MsgBox (N)
End Sub

Note-se que há uma linha de dente de serra sob o N variável na sub TryIt. Mantenha o ponteiro do mouse em cima da linha de dente de serra e VB.NET exibe uma mensagem de erro dizendo que Name ‘N’ não está declarado.

Esta mensagem de erro significa que as linhas de código dentro do sub TryIt (entre Public Sub e End Sub) não pode ler (acesso) ou escrever (mudança) a N. variável N foi declarado (com o comando Dim) em um procedimento separado, e de modo que o âmbito de N (a sua gama de acessibilidade) está limitado a linhas de código dentro do seu mesmo procedimento.

Embora Dim é o mais comumente utilizado, você pode usar sete comandos de declaração adicionais: estática, Public, Protected, amigo, compartilhados, amigo protegido, e privados. Estes comandos adicionais especificar escopo (a partir do qual locais em seu programa uma variável pode ser acessado).

Observe que quando você declarar uma variável dentro de um procedimento, a variável funciona apenas dentro desse procedimento. Quando o programa executa o procedimento (ou evento), a variável vem à vida, faz sua coisa, e depois morre (desaparece) assim como a linha End Sub é executado.

Quando as variáveis ​​são locais

Variáveis ​​que vivem somente dentro de um único procedimento são chamados variáveis ​​locais. As variáveis ​​locais têm duas qualidades que você precisa memorizar:

  • Nenhuma programação fora do seu próprio procedimento pode interagir com eles, seja para ler seu valor ou para alterar seu valor. O seu âmbito é limitado a seu próprio procedimento.
  • Quando VB termina a execução do procedimento em que residem, o seu valor evapora. Se esse procedimento é executado uma segunda vez, o valor que a variável local, uma vez contido não está mais lá. Uma execução do procedimento é a sua vida.
    Existem algumas situações em que você quer o valor de uma variável local a ser preservado. Nesses casos, você usa o comando estático em vez do comando Dim:

Private Sub Form1_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load



Dim n As Integer

x estáticos As Integer

Video: Visual Basic .NET Tutorials

End Sub

Neste exemplo, a variável n perde seu valor quando o End Sub é executado. No entanto, a variável X mantém o seu valor até que o programa é desligado. Outra maneira de colocar é esta: Quando você usa o comando estático com uma variável local, o valor dessa variável é preservado para a vida de sua aplicação. (Lifetime significa quanto tempo algo está na existência de um programa.)

O que você acha que aconteceria se você colocar dois botões de comando no formulário e, em seguida, você executou o programa e clicou Command1 primeiro lugar, e em seguida, clicar Command2, neste próximo programa?

Private Sub Button1_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim X As Integer
X = 12
X = X + 5
End Sub
Private Sub Button2_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim X As Integer
MsgBox (X)
End Sub

A caixa de mensagem exibe nada. A variável X no evento Click de Command1 é uma variável completamente diferente do X no evento Click do Command2. Eles são de âmbito local e simplesmente não têm nenhuma relação entre si, não mais do que dois estranhos chamado Mike que acontecerá a viver no Bronx e nunca se encontram.

Mas e se você quer ambos os procedimentos para ser capaz de acessar e manipular a mesma variável? Para fazer isso, você define a variável fora seus procedimentos. Tente. Clique logo acima do primeiro procedimento (logo acima da linha Private Sub Form1_Load) na janela de código para mover o cursor de inserção lá.

Agora digite o seguinte:

Dim x As Integer

Isso é onde você quer colocar todas as variáveis ​​que você quer dar escopo em todo o formulário - em outras palavras, para permitir que todos os procedimentos no que formulário (Form1, neste caso) para ser capaz de ler e modificar a variável. (A área onde você coloca variáveis ​​de todo o formulário usado para ser chamado de área de declaração geral, antes de VB.NET).

Agora, com essa variável X esmaecido lá em cima (fora) todas as Subs e outros procedimentos, quando você executar o mesmo programa, clique em Command1 e clique em Command2, você vê o resultado que você quer ver: o número 17. Quando você declarar X para ser em toda a forma no espaço, os dois botões pode acessar essa variável X. Eliminar as duas declarações Dim que tenham sido previamente declarados X dentro desses dois eventos de botão. Agora X = X + 5 e MsgBox (X), ambos se referem à mesma variável chamada X.

Video: Visual Basic .NET Tutorial for Beginners

Quando uma variável tem amplo alcance-forma, que é, então, disponível para todos os processos em que se formam. Ele não está disponível, no entanto, para os procedimentos em quaisquer outras formas no projeto.


Publicações relacionadas