Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Sintaxe das variáveis

Gostaria de entender porque existe diferença entre as variáveis declaradas no código do projeto disponibilizado para aula.

    public class ContaCorrente
    {
        private int _numero_agencia;

        private string _conta;

        private double saldo;

Por que as variáveis "numero_agencia" e "conta" recebem o caracter " _ " antes dos seus nomes e a variável "saldo" não recebe?

Em uma busca no google, encontrei que a utilização do " _ " é uma boa pratica de algumas linguagem que não tem o recurso de "private", e para haver uma comunicação interna entre os devs, esse caractere sinaliza que as variáveis que o utilizam só devem ser chamadas dentro da própria classe, nunca fora. Mas nesse caso por que o "saldo" também não tem o " _ " ?

3 respostas

Klayton,

Exatamente, é só uma padronização. Cada empresa tem um jeito diferente de tratar isso.

Por favor, leia também:

==========================================================

Introdução a Variáveis e Constantes no C#

Regras para nomes de variáveis

A regra para nomear uma variável é que o nome dela sempre comece por uma letra ou _. No meio do nome podem-se usar números, mas não se devem usar caracteres especiais e também não pode ser uma palavra reservada. Entende-se por palavras reservadas os comandos do C# e que são facilmente identificadas quando digitadas, por ficarem da cor azul.

https://www.devmedia.com.br/introducao-a-variaveis-e-constantes-no-csharp/29629

==========================================================

Convenções de codificação em C#

Artigo - 05/10/2022 - 11 minutos para o fim da leitura

Camel Case

Use Camel Case ("camelCasing") ao nomear os campos private ou internal e aplique a eles o prefixo _.

https://learn.microsoft.com/pt-br/dotnet/csharp/fundamentals/coding-style/coding-conventions

==========================================================

Regras de nomenclatura de estilo de código

Artigo - 28/11/2022 - 8 minutos para o fim da leitura

No arquivo .editorconfig, você pode definir convenções de nomenclatura para seus elementos de código de linguagem de programação do .NET, como classes, propriedades e métodos, e como o compilador ou o IDE devem impor essas convenções. Por exemplo, você pode especificar que um membro público que não esteja em letras maiúsculas deve ser tratado como um erro do compilador ou que, se um campo privado não começar com _, um aviso de build deverá ser emitido.

https://learn.microsoft.com/pt-br/dotnet/fundamentals/code-analysis/style-rules/naming-rules

==========================================================

[]'s,

Fabio I.

Oi Fábio, muito obrigado pela resposta e pelo envio dos artigos, foram muito úteis. Pelo o que entendi e confirmando através dos textos, na verdade foi apenas um erro de declaração fora da convenção. Seria isso mesmo?

No caso, a variável "saldo" também deveria ganhar o caractere " _ " antes do seu nome, certo?

solução!

Klayton,

Sim, se você quer seguir as convenções de padronização indicada, isso NÃO interfere em absolutamente nada no código fonte ou execução do programa. É fácil de se enganar e colocar algo fora de padrão.

Existem plug-ins que formatam o código, de cabeça me lembro somente do "PRETTIER", que é para a IDE do Visual Studio Code, acho que não funciona no Visual Studio 2022.

Abaixo um vídeo rápido explicando um pouco do PRETTIER:

=========================================================

Curso de VsCode#02 - Formatação do código com Prettier - [PRETTIER NO VSCODE] #prettier #vscode

Clube Full-Stack

28 de ago. de 2020

Como o título já está dizendo, nessa aula vou ensinar a você a configurar o prettier no vscode, desde qual plugin instalar até a configuração do arquivo do #prettier.

https://youtu.be/_avOf_W02tc

==========================================================

Talvez exista um plug-in para C# (talvez até independente de IDE) que formate o nome das variáveis de acordo com um padrão escolhido... precisa procurar. Caso não exista, está ai uma ideia para um novo projeto a ser desenvolvido.

[]'s,

Fabio I.