Escopo
Em C#, "escopo" refere-se à região do código onde uma variável ou um membro de uma classe pode ser acessado. Entender o escopo é fundamental para escrever um código organizado e livre de erros, pois ele determina o ciclo de vida e a visibilidade das suas variáveis.
O escopo em C# é geralmente definido por blocos de código, que são delimitados por chaves {}
.
Níveis de Escopo
1. Escopo de Classe (Campos ou Fields)
Variáveis declaradas diretamente dentro de uma classe, mas fora de qualquer método, são chamadas de campos (fields) ou variáveis de membro. Elas estão disponíveis para todos os métodos (e outros membros) dentro daquela classe.
Seu ciclo de vida é o mesmo do objeto da classe.
Podem ser acessadas usando a palavra-chave
this
.
2. Escopo de Método (Variáveis Locais)
Variáveis declaradas dentro de um método são chamadas de variáveis locais. Elas só podem ser acessadas dentro do método onde foram declaradas.
Elas são criadas quando o método é chamado e destruídas quando o método termina.
Não podem ser acessadas por outros métodos.
3. Escopo de Bloco
Variáveis declaradas dentro de um bloco de código (como um if
, for
, while
ou mesmo um bloco {}
avulso) só existem dentro daquele bloco.
Este é o nível de escopo mais restrito.
Sombreamento de Variáveis (Variable Shadowing)
O C# impede que você declare uma variável local com o mesmo nome de outra variável local que já esteja em um escopo externo (pai). Isso evita bugs e confusão.
No entanto, uma variável local pode ter o mesmo nome de um campo da classe. Nesse caso, a variável local "sombra" (ou esconde) o campo. Para acessar o campo da classe, você deve usar a palavra-chave this
.