Declaração e acesso de variáveis em C#

Olá a todos, tudo bem ?
Busquei bastante mas não encontrei uma resposta clara para essa questão…

  • Qual o local correto para se declarar um variável no C#, dentro de um método ou fora dele, na classe?
    Sei que, quando declaro uma variável e depois lhe dou uma valor fora de um método dá erro. E se eu criar variáveis dentro de métodos, por exemplo, não posso acessá-las através de qualquer método e dar-lhes valor. Então, posso concluir que o local correto para se criar variáveis é fora de métodos e o lugar para atribuir valores é dentro de métodos.
  • Esse pensamento está correto ?

Tks :wink:

Depende da lógica. Sem mostrar o código e a mensagem de erro não tem como te ajudarem, ou só terá respostas genéricas.

3 curtidas

Depende do Escopo
Se você definir uma variável dentro da Classe e fora do método Ela serà um Atributo com Escopo Global é assim podera ser usada dentro de todo código da classe até mesmo dentro do metodo. E Utilizando a palavra chave This você faz uma referência ao Objeto que chamou esse método . Jà no caso de declarar uma vàriavel dentro do método o escopo vai ser local e ela só vai poder ser acessada dentro do método isso também serve para parâmetros do método .
Exemplo:

Class Pessoa {
Public string Nome; // Atributo da classe de Escopo Global .

Public void SetNome( string nome) {
this.Nome = nome ;
}
}
As variáveis dentro do parantese São chamadas de parâmetro ou argumentos do método e seu escopo é local assim só o método vai ter acesso.

A palavra this faz referência ao nome do objeto que chama esse método .

Dessa forma eu estou Atribuindo o valor do argumento nome , no Atributo Nome da classe que é uma Variável de escopo Global

Lembrando que também existem os Modificadores de acesso para proibir ou não o acesso à classe e seud componentes

  • Public
  • Private
  • Internal
  • Protected .

Se você define uma variável sem uma visibilidade o Compilador do C# entende que ela é Private e só a classe e seus membros ter am acesso a els isso também serve pra métodos e propriedades e pra própria classe

Caso você não entender a minha explicação recomendo assistir esta aula sobre escopo de vàriavel e entender a diferença de Local é Global

  • Cite exemplos quando fizer uma pergunta.
  • De um modo geral vai depender da aplicação.