Diretrizes de nomenclatura com C#
-
18-09-2019 - |
Pergunta
Eu tenho essa classe:
class DoSomething
{
private int timesDone;
...
}
Qual é o caminho certo para o nome da variável 'timesDone'?
Às vezes, eu vejo nomeado como m_timesDone.Isso está correto?Onde eu posso encontrar informações sobre diretrizes de nomenclatura?
Obrigado!
Solução
De acordo com os padrões do MS, seu código está ok. Ter prefixos como M_ não é realmente necessário quando você tem IDE avançado. Por mais curto prefixo como _ Pode ser usado para aproveitar o recurso completo completo para classificar rapidamente os membros da classe.
Eu recomendaria que você obtenha uma cópia de "Diretrizes de design da estrutura: convenções, expressões idiomáticas e padrões para bibliotecas .NET reutilizáveis"Livro para saber mais sobre os padrões da MS
Outras dicas
Não existe um caminho certo. Escolha uma convenção de nomenclatura do seu gosto e fique com ela.
Definitivamente não use m_timesDone.
Basta colocar "private int timesDone".
Você pode aprender sobre como nome de variáveis através da leitura de alguns bons livros como o Código Completo.
Muitas pessoas fazem o que você tem lá. Você então referenciaria como
this.timesDone = someInt
No entanto, não gosto disso porque não sou fã de digitar 'isso' para evitar confrontos com nomes de parâmetros de método. Contanto que seja legível e consistente, você ficará bem.
A Convenção dos Campos de Membros de Prefiguração com M_ vem dos primeiros dias de C ++, quando Notação húngara era popular. Não é uma convenção C# e, como a maioria do código C# é escrito usando um Visual Studio recente, ele adiciona ruído visual sem qualquer vantagem correspondente, porque você pode ver facilmente o escopo de uma variável de qualquer maneira. Não use m_.
O único exemplo de notação húngara que encontrou seu caminho para C# é a prática de prefactar nomes de classe de interface com I, como idisposláveis.
Você pode encontrar algumas informações diretamente no site MSDN:http://msdn.microsoft.com/en-us/library/ms229002.aspx
O único ponto de acordo que você encontrará é que deveria não Seja Timesdown, mas deve começar com uma carta de minúscula.
Nas publicações mais antigas (MS, MSDN), o uso de um sublinhado líder é desencorajado. Mais tarde, está de volta, especialmente para BackingFields para propriedades: _Timesdown.
A Estratégia geralmente adotada é :
Para Classe & Método: Pascal Casing
exemplo:
public class Program
{
}
e.g
public void DoSomething() { }
Para Variáveis: A Caixa De Camelo exemplo:timesDown
Variáveis Locais:
aTimesDown
Variável Global:
myTimesDown
Espero que isso possa ajudá-lo :)