Recentemente, comecei a trabalhar com o Unity3D e principalmente a criar scripts com C #. Como normalmente programa em Java, as diferenças não são muito grandes, mas ainda me refiro a um curso intensivo apenas para garantir que estou no caminho certo.
No entanto, minha maior curiosidade com o C # é que ele coloca em maiúscula a primeira letra de seus nomes de métodos (por exemplo, Java: getPrime()
C #: GetPrime()
aka: Pascal Case?). Existe uma boa razão para isso? Entendo, na página do curso intensivo, que li que aparentemente é uma convenção para .Net e não tenho como mudar isso, mas estou curioso para saber por que isso foi feito assim, em oposição ao caso normal (relativo?) De camelo que, digamos, Java usa.
Nota: Entendo que as linguagens têm suas próprias convenções de codificação (os métodos Python são minúsculos, o que também se aplica a esta pergunta), mas nunca entendi realmente por que não é formalizada em um padrão.
fonte
camelCase
ePascalCase
eunderscore_case
e dizer que um deles é normal (mesmo relativamente normal) e os outros não. Como o @dasblinkenlight disse, é uma escolha arbitrária. A única coisa que faz você pensar que a convenção do C # é incomum é que você "normalmente programa em Java" e, portanto, está acostumado à escolha arbitrária feita para Java.Respostas:
As convenções de nomenclatura representam opções arbitrárias de seus editores. Não há nada na própria linguagem que o proíba de nomear seus métodos da maneira que você faz em Java: desde que o primeiro caractere seja uma letra / sublinhado e todos os outros caracteres sejam letras, dígitos ou sublinhados, o C # não será reclamar. No entanto, as bibliotecas de classes que acompanham o .NET seguem uma convenção que a Microsoft adotou internamente. A Microsoft também publicou essas diretrizes , para que outras pessoas também possam adotá-las para suas próprias bibliotecas de classes. Embora seja sua escolha seguir ou ignorar as diretrizes da Microsoft, a familiarização com seu código por outras pessoas pode ser mais rápida se você seguir as mesmas diretrizes de nomenclatura.
fonte
this
palavra-chave faz o mesmo. As opções de estilo são práticos, mesmo que possa parecer estranhoTalvez devido à influência de Pascal / Delphi. O criador de C # e Delphi era a mesma pessoa, afinal (Anders Hejlsberg).
As convenções de codificação Delphi geralmente são as mesmas que as de C # neste aspecto; consulte http://www.econos.de/delphi/cs.html#ObjectPascal_Procedures ou http://wiki.delphi-jedi.org/index.php?title=Style_Guide#Method_Naming - coincidência?
fonte
Além das outras respostas, ter camel case para métodos significa que eles podem entrar em conflito com nomes para membros privados, parâmetros e variáveis de método que usam camel case para nomear. Em Java (e C # 1.0) isso não é muito comum, pois o uso de delegados é estranho e raro. No C # moderno, isso não é exatamente comum , mas também não é inédito.
fonte