Convenção de nomenclatura de variáveis ​​na linguagem de programação C # [fechada]


10

Estou assistindo a um vídeo em C # sobre variáveis. O autor declara uma variável dentro de um método e nomeou-a assim: string MyName = "James";

minha pergunta é: qual convenção é recomendada pelo .Net Framework. É o revestimento de Pascal como no exemplo acima ou é uma caixa de camelo?


O problema com esta pergunta, que você não sabia, portanto não é sua culpa, é que, de fato, não existe uma convenção canônica para C #. Existem convenções comuns; infelizmente, mais de um, mas seria bastante difícil para você obter uma resposta aqui que é tudo, menos opinião pura. Desculpe, votando para fechar; minha sugestão: gaste algum tempo lendo código nos repositórios populares do github e codeplex para ver quais convenções eles usam como as pessoas que escrevem a maioria dos populares são pessoas com experiência no setor e tão canônicas quanto o comum, como você encontrará.
Jimmy Hoffa

5
Convenções de nomenclatura do MSDN - msdn.microsoft.com/pt-br/library/xzf533w0(v=vs.71).aspx
Yusubov

1
@Yusubov Eles descrevem a nomeação de partes públicas de bibliotecas, não variáveis ​​locais.
svick

Respostas:


26

Eu não acho que exista algo como uma convenção 'oficial'. Até onde eu sei, o seguinte é considerado uma boa prática por muitos desenvolvedores experientes em C #:

PascalCase for public member variables (string MyName = "James")

camelCase for local variables (string myName = "James")

_leadingUnderscore for private member variables (string _myName = "James")

Com essa abordagem, é possível distinguir entre variáveis ​​locais e membros públicos e privados pelo caso de sua primeira letra.

Como em qualquer convenção de codificação, isso também está sujeito a preferências pessoais. Portanto, não há resposta definitiva. Um objetivo geral deve ser manter o código o mais legível e compreensível possível.


3
+1 Isso é próximo ao estilo que eu já vi. Eu acredito que geralmente é retirado do estilo usado nos exemplos do MSDN. Normalmente, vejo propriedades recebendo PascalCase, moradores recebendo camelCasee membros privados recebendo um _leadingUnderscore.
KChaloux

Você quer dizer Campos ou Propriedades quando disse variáveis ​​de membro?
Kaser

Desenvolvedores Delphi tendem a parâmetros de função Nome / método prefixando-los com um 'a': (aParameter: string). Sei que parâmetros são essencialmente variáveis ​​locais, especialmente quando passados ​​por valor, mas geralmente é muito útil "ver" que um var é realmente transmitido como parâmetro. Existe alguma convenção em C #?
Marjan Venema

E outro: campos de membros. Os Delfos os prefixam com um 'F'. Eu vi C # código que lhes declara com um sublinhado: private string _SomeString. Você diria que é uma convenção? (Apenas mergulhando os dedos dos pés em c # e me perguntando sobre essas coisas).
Marjan Venema

1
Isso é impreciso. Existem convenções de nomenclatura publicadas para membros públicos (e classes públicas etc.).
svick

7

As convenções de nomenclatura do .Net Framework ( v4.5 , v1.1 ) são independentes sobre isso. Eles não especificam um padrão para nomear variáveis ​​locais. Você terá que decidir sobre sua própria convenção para nomeá-los.

Eu pessoalmente uso camelCase e desambiguo variáveis ​​de membros de nomes de parâmetros thisquando necessário. Mas os sublinhados iniciais (ie _memberVariable) também são válidos.


1
Esse é exatamente o motivo de usar convenções de nomenclatura - thispara distinguir variáveis ​​locais de campos / propriedades. 5 letras adicionais a cada vez é demais.
Sinatr
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.