Alguém pode me explicar a convenção de codificação do C #?

14

Comecei recentemente a trabalhar com o Unity3D e principalmente com scripts em C #. Como normalmente programo em Java, as diferenças não são muito boas, mas ainda me refiro a um curso intensivo apenas para verifique se estou no caminho certo.

No entanto, minha maior curiosidade com o C # é que ele capitaliza a primeira letra de seus nomes de métodos (por exemplo, Java: getPrime() C #: GetPrime() : Pascal Case?). Existe uma boa razão para isso? Eu entendo na página do curso que eu li que aparentemente é uma convenção para .Net e eu não tenho como mudar isso, mas estou curioso para saber por que isso foi feito assim, em oposição ao normal (relativo?) Caso de camelo que, digamos, o Java usa.

Nota: Eu entendo que as linguagens têm suas próprias convenções de codificação (os métodos Python são todos minúsculos, o que também se aplica a essa questão), mas eu nunca entendi porque ela não está formalizada em um padrão.

    
por ahodder 02.08.2012 / 00:58
fonte

3 respostas

27

Convenções de nomenclatura representam escolhas arbitrárias de seu editor. Não há nada na própria linguagem que proíba você de nomear seus métodos da maneira que você faz em Java: contanto que o primeiro caractere seja uma letra / sublinhado e todos os outros caracteres sejam letras, dígitos ou sublinhados, o C # não 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 estas diretrizes , para que outras pessoas possam escolher adotá-los para suas próprias bibliotecas de classes também. 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 nomeação.

    
por 02.08.2012 / 01:13
fonte
23

Talvez devido à influência de Pascal / Delphi. O criador de C # e Delphi era a mesma pessoa depois de tudo (Anders Hejlsberg).

As convenções de codificação Delphi, em geral, são iguais às do C # neste aspecto; veja link ou link - coincidência?

    
por 02.08.2012 / 01:13
fonte
4

Além das outras respostas feitas, ter um caso de camelo para métodos significa que eles podem entrar em conflito com nomes de membros privados, parâmetros e variáveis de método que usam o caso do camelo para sua nomeação. Em Java (e C # 1.0) isso não é muito comum, já que o uso de delegado é estranho e raro. No C # moderno não é exatamente comum , mas também não é inédito.

    
por 02.08.2012 / 01:31
fonte