Recientemente comencé a trabajar con Unity3D y principalmente a crear scripts con C #. Como normalmente programo en Java, las diferencias no son demasiado grandes, pero todavía me referí a un curso intensivo solo para asegurarme de que estoy en el camino correcto.
Sin embargo, mi mayor curiosidad con C # es que escribe en mayúscula la primera letra de los nombres de sus métodos (por ejemplo, Java: getPrime()
C #: GetPrime()
aka: Pascal Case?). ¿Hay alguna buena razón para esto? Entiendo por la página del curso intensivo que leí que aparentemente es una convención para .Net y no tengo forma de cambiarlo, pero tengo curiosidad por saber por qué se hizo así en comparación con el caso de camellos normal (¿relativo?) que, digamos, utiliza Java.
Nota: Entiendo que los lenguajes tienen sus propias convenciones de codificación (todos los métodos de Python son minúsculas, lo que también se aplica en esta pregunta) pero nunca he entendido realmente por qué no está formalizado en un estándar.
fuente
camelCase
yPascalCase
yunderscore_case
y decir que uno de ellos es normal (aunque relativamente normal) y los otros no. Como dijo @dasblinkenlight, es una elección arbitraria. Lo único que le hace pensar que la convención de C # es inusual es que "normalmente programa en Java" y, por lo tanto, está acostumbrado a la elección arbitraria hecha para Java.Respuestas:
Las convenciones de nomenclatura representan elecciones arbitrarias de su editor. No hay nada en el lenguaje en sí que le prohíba nombrar sus métodos como lo hace en Java: siempre que el primer carácter sea una letra / guión bajo, y todos los demás caracteres sean letras, dígitos o guiones bajos, C # no va a quejar. Sin embargo, las bibliotecas de clases que vienen con .NET siguen una convención que Microsoft ha adoptado internamente. Microsoft también publicó estas pautas , para que otros puedan optar por adoptarlas también para sus propias bibliotecas de clases. Aunque es su elección seguir o ignorar las pautas de Microsoft, la familiarización con su código por parte de otros puede ser más rápida si sigue las mismas pautas de nombres.
fuente
this
palabra clave hace lo mismo. Las opciones de estilo son prácticas, incluso si pueden parecer extrañasQuizás debido a la influencia de Pascal / Delphi. El creador de C # y Delphi era la misma persona después de todo (Anders Hejlsberg).
Las convenciones de codificación de Delphi en general son las mismas que las de C # en este aspecto; ver http://www.econos.de/delphi/cs.html#ObjectPascal_Procedures o http://wiki.delphi-jedi.org/index.php?title=Style_Guide#Method_Naming - coincidencia?
fuente
Además de las otras respuestas hechas, tener un caso de camello para los métodos significa que pueden entrar en conflicto con los nombres de los miembros privados, los parámetros y las variables de método que usan el caso de camello para sus nombres. En Java (y C # 1.0) esto no es terriblemente común ya que el uso de delegados es incómodo y raro. En C # moderno no es exactamente común , pero tampoco es inaudito.
fuente