Muitas vezes é necessário utilizar variáveis adicionais que serão utilizadas somente na sub-rotina. Tais variáveis são chamadas de locais (ou locais) e só podem ser manipuladas dentro da sub-rotina em que são criadas.
Escopo de variável local é o bloco entre colchetes no qual ela é declarada. div>
O programa principal em C# também é uma sub-rotina, então todas as variáveis declaradas dentro de
void Main()
são
variáveis locais. Outras sub-rotinas não "sabem" nada sobre as variáveis locais de outras sub-rotinas.
Assim, é possível limitar o escopo (scope) de uma variável apenas à sub-rotina onde ela é realmente necessária. Na programação, essa técnica é chamada de
encapsulamento - ocultando a variável de alterá-la de fora.
Se for necessário declarar uma variável que seria visível em qualquer lugar do programa (em qualquer sub-rotina), então tais variáveis são declaradas fora de todas as sub-rotinas (ver programa 3 da tabela abaixo).
Essas variáveis são chamadas de
globais.
Em C#, quando o programa inicia, todas as variáveis globais são automaticamente zeradas (as variáveis booleanas assumem o valor false).
Analise três programas:
1) Neste programa, a variável i é local. Uma variável local é declarada dentro de uma sub-rotina. |
2) Aqui, mesmo que exista uma variável i no programa principal (com valor 7), uma nova variável local i com valor 5 será criada.
Quando este programa for executado, o valor 75 aparecerá na tela. |
3) Este programa tem uma variável global i. Seu valor pode ser alterado dentro da sub-rotina, e dentro do programa principal.
O procedimento funcionará com a variável global i e será atribuído a ela um novo valor igual a 2. O valor 2 é exibido. |
teste de vazio estático ()
{
int i = 5;
Console.Write("i");
}
|
teste de vazio estático ()
{
int i = 5;
Console.Write("i");
}
static void Main()
{
int i = 7;
Console.Write("i");
teste();
}
|
usando Sistema;
programa de classe
{
int eu;
teste de vazio estático ()
{
i = 2;
}
static void Main()
{
teste();
Console.Write("i");
}
}
|