Nos velhos tempos, fizemos a notação húngara. Agora isso é considerado passé e, na maioria das vezes, não o uso mais, mas ainda acho útil o m_
prefixo para indicar os campos dos membros.
Para mim, se estou lendo o código de outra pessoa e vejo o seguinte:
count = 3;
Suponho que count
seja uma variável local para essa função e estou fazendo algo que será usado em outro lugar na função; se eu vir isso:
m_count = 3;
Percebo imediatamente que estou atualizando o estado do objeto.
As diretrizes de estilo da Microsoft dizem que essa é a maneira errada de fazer as coisas. Devo nomear meus campos não públicos exatamente como variáveis temporárias definidas dentro da função. Não m_
, nem mesmo um simples sublinhado.
Sim, podemos definir nosso próprio estilo de codificação, mas então eu tenho que lutar com várias ferramentas de análise de código estáticas, para convencê-las de que nossa maneira de fazer as coisas é boa.
Estou feliz em mudar para o estilo da Microsoft, mas gostaria de saber por que as coisas são do jeito que são.
Por que agora é considerado ruim poder saber se uma variável é função local ou membro?
PS Isso é muito parecido com o que são as melhores práticas atuais consideradas em relação à palavra-chave "this" na frente do campo e métodos em c #? , mas estou perguntando sobre m_
nãothis.
PPS Consulte também Por que a Microsoft criou parâmetros, variáveis locais e campos privados com a mesma convenção de nomenclatura?
count
não apareceu do nada, pois não foi declarado no método. Francamente, o argumento "fora do IDE" é MUITO fraco. Especialmente porque existem até ferramentas de revisão de código que funcionam no IDE.
this
palavra - chave? Você não pode se referir a membros usandothis
, comothis.count
?