Vejo perguntas semelhantes a essa com relação aos nomes de parâmetros que correspondem às propriedades da classe, mas não consigo encontrar nada sobre o uso de um nome de parâmetro igual ao nome do tipo de parâmetro, exceto por maiúsculas e minúsculas em C #. Não parece ser uma violação que eu possa encontrar, mas é considerada uma má prática? Por exemplo, eu tenho o seguinte método
public Range PadRange(Range range) {}
Esse método assume um intervalo e retorna um novo intervalo que teve algum preenchimento aplicado. Portanto, dado o contexto genérico, não consigo pensar em um nome mais descritivo para o parâmetro. No entanto, lembro-me de uma dica que recebi ao ler o código completo sobre "distância psicológica". Diz
A distância psicológica pode ser definida como a facilidade com que dois itens podem ser diferenciados ... Ao depurar, esteja preparado para os problemas causados pela distância psicológica insuficiente entre nomes de variáveis semelhantes e entre nomes de rotina semelhantes. Ao criar o código, escolha nomes com grandes diferenças para evitar o problema.
Minha assinatura de método tem muito "Range" acontecendo, então parece que pode ser um problema com relação a essa distância psicológica. Agora, vejo muitos desenvolvedores fazendo o seguinte
public Range PadRange(Range myRange) {}
Pessoalmente, tenho um forte desagrado por esta convenção. A adição de um prefixo "my" aos nomes de variáveis não fornece contexto adicional.
Eu também vejo o seguinte
public Range PadRange(Range rangeToPad) {}
Gosto disso melhor do que o prefixo "my", mas ainda não me importo com isso no geral. Parece-me excessivamente detalhado e lê desajeitadamente como um nome de variável. Para mim, entende-se que o intervalo será preenchido por causa do nome do método.
Então, com tudo isso exposto, meu instinto é ir com a primeira assinatura. Para mim, está limpo. Não há necessidade de forçar o contexto quando não é necessário. Mas estou prestando um desserviço a mim ou a futuros desenvolvedores com esta convenção? Estou violando uma prática recomendada?
Range r
(pelo menos para um corpo de método curto) e Range toPad
.
Range range
bem.