2
respostas

Duvida Escopo

Não entendi muito bem o que é um escopo, já assisti a aula 2 vezes. Alguém pode me explicar?

2 respostas

Oi Celso. O escopo pode ser entendido como o alcance dessa variável. Se você cria uma variável dentro de um bloco, procedimento ou função, por exemplo, essa variável só poderá ser usado dentro desse bloco, procedimento ou função.

Se vc cria uma variável em um nível mais interno, ela só poderá ser acessada neste nível ou por níveis abaixo dele. Níveis acima desse nível, não tem acesso a ela.

Exemplo:

        int abrangeBlocoExternoA = 1;
        int abrangeBlocoExternoB = 2;
        if (abrangeBlocoExternoA == 1)
        {
            int abrangeSomenteBlocoIfeAbaixoA = 1;
            Console.WriteLine($" variável abrangeSomenteBlocoIfeAbaixoA : {abrangeSomenteBlocoIfeAbaixoA }"); 
            Console.WriteLine($" variável abrangeBlocoExternoA: {abrangeBlocoExternoA}"); 
        }
        if (abrangeBlocoExternoB == 2)
        {
            int abrangeSomenteBlocoIfeAbaixoB = 2;
            Console.WriteLine($" variável abrangeSomenteBlocoIfeAbaixoB : {abrangeSomenteBlocoIfeAbaixoB }"); 
            Console.WriteLine($" variável abrangeBlocoExternoB: {abrangeBlocoExternoB}"); 
        }
        Console.WriteLine($" variável abrangeBlocoExternoA: {abrangeBlocoExternoA}"); 
        Console.WriteLine($" variável abrangeBlocoExternoB: {abrangeBlocoExternoB}"); 

        Console.WriteLine($" variável abrangeSomenteBlocoIfeAbaixoA: {abrangeSomenteBlocoIfeAbaixoA}");  //Apresenta erro: A variavel  abrangeSomenteBlocoIfeAbaixoA não existe neste contexto,             porque ela foi declara dentro do IF            

Console.WriteLine($" variável abrangeSomenteBlocoIfeAbaixoB : {abrangeSomenteBlocoIfeAbaixoB }");  //Apresenta erro: A variavel  abrangeSomenteBlocoIfeAbaixoB não existe neste contexto, porque ela foi declara dentro do IF

O exemplo é bem simples. Espero ter ajudado.

Celso, Escopo pode ser entendido como algumas regras que tenhamos que seguir para compilar nosso código de maneira correta. Além da forma como utilizamos as variáveis dentro do código, bem como a forma que utilizamos as chaves nos laços de condições. Outra finalidade de escopo apresentada nesse secção é a forma como podemos simplificar nosso código com alguns macetes.

Creio que todas essas dicas, regras e macetes, tornam se escopo para um bom desenvolvimento de código. Espero ter ajudado.