Sobes.tech
Junior

O que é o escopo (scoped) em C#?

sobes.tech IA

Resposta da IA

O âmbito em C# determina a disponibilidade de variáveis, métodos e tipos numa parte específica do programa. É uma restrição sobre onde no código um identificador determinado pode ser utilizado.

Principais áreas de âmbito:

  • Bloco de código: As variáveis declaradas dentro de chaves { } estão disponíveis apenas dentro desse bloco.
  • Âmbito do método: As variáveis e parâmetros declarados dentro de um método estão disponíveis apenas dentro desse método.
  • Âmbito da classe/estrutura: Os membros de uma classe ou estrutura (campos, propriedades, métodos) estão disponíveis dependendo dos modificadores de acesso (public, private, protected, internal).
  • Âmbito do espaço de nomes: Os tipos declarados no espaço de nomes estão disponíveis nesse espaço de nomes e em outros espaços de nomes onde using é utilizado.
  • Âmbito do assembly: Os tipos com o modificador internal estão disponíveis apenas dentro do assembly atual.

Exemplo de âmbito de bloco de código:

public void ExampleMethod()
{
    int x = 10; // x está disponível apenas dentro de ExampleMethod
    if (x > 5)
    {
        int y = 20; // y está disponível apenas dentro do bloco if
        Console.WriteLine(y);
    }
    // Console.WriteLine(y); // Erro de compilação: y não está disponível aqui
}