variable programming practices net microsoft guidelines framework convenciones coding code best and c# .net naming-conventions standards

programming - ¿Carcasa Pascal o Camel Camel para código C#?



convention variable c# (14)

En realidad, no hay una convención "estándar" sobre esto. Hay una guía editada de Microsoft en alguna parte, y como con cualquier otra guía de convención de nomenclatura, seguramente hay otra que la refuta, pero esto es lo que he llegado a entender como "convención estándar de la envoltura de C #".

  1. PerWordCaps en nombres de tipos (clases, enumeraciones), constantes y propiedades.
  2. camelCase para variables locales muy largas y variables protegidas / privadas
  3. No ALL_CAPS nunca (bueno, solo en el compilador define, pero no en tu código)
  4. Parece que algunas de las clases del sistema usan nombres subrayados (_name) para variables privadas, pero supongo que proviene de los antecedentes del escritor original, ya que la mayoría provienen directamente de C ++. Además, tenga en cuenta que VB.NET no distingue entre mayúsculas y minúsculas, por lo que no podrá acceder a las variables protegidas si amplía la clase.

En realidad, FxCop hará cumplir algunas de esas reglas, pero (AFAIK) ignora cualquier ortografía que uses para las variables locales.

He estado discutiendo con mis compañeros de trabajo sobre el revestimiento Pascal (caja de camello superior) frente a CamelCasing inferior. Se usan para reducir la carcasa de camello para todo, desde nombres de tablas en bases de datos SQL hasta nombres de propiedades en código C #, pero me gusta más la carcasa Pascal, la carcasa de camello más baja para variables y la carcasa de Pascal para propiedades:

string firstName; public string FirstName { ... }

Pero están acostumbrados a esto:

string _firstname; public string firstName { ... }

Trato de mantenerme al día con su "estándar", por lo que el código se ve igual, pero simplemente no me gusta.

He visto que al menos el framework .NET utiliza esta convención y así es como trato de mantener mi código, por ejemplo:

System.Console.WriteLine("string")

¿Qué usas / prefieres y por qué? Lo siento si alguien más hizo esta pregunta, pero busqué y no encontré nada.

Actualización: he dado un ejemplo de método y no una propiedad, pero es lo mismo. Como dije en el primer párrafo, mis colegas usan la convención de Pascal para todo (variables, métodos, nombres de tablas, etc.)


La carcasa de Pascal se debe usar para Propiedades. En lo que respecta a los nombres variables, algunas personas usan _ y algunas personas usan m_ y algunas personas simplemente usan la carcasa de camello. Creo que mientras seas consecuente aquí, no debería importar.


Me gustan las convenciones de codificación presentadas en la especificación del proyecto Aardvark''d


Supongo que tiene que aguantar lo que dice el estándar de codificación para su lugar de trabajo, por mucho que le desagrade personalmente. Quizás algún día en el futuro pueda dictar sus propios estándares de codificación.

Personalmente, me gustan las bases de datos para usar nombres de la forma "nombre_de_pequeño", "nombre_de_tapa", etc. para tablas y campos, mientras que el código equivalente del modelo de la base de datos sería "nombre_de_pequeño" y "identificación_de_tanque". Tampoco me gusta el nombramiento de "_fooname" cuando está disponible "fooName". Pero debo repetir que esto es subjetivo, y diferentes personas tendrán diferentes ideas sobre lo que es bueno y malo debido a su experiencia y educación previas.


Utilizo lo que usa el Framework, ya que es la mejor práctica de facto. Sin embargo, siempre que el código de su empresa esté utilizando su estilo de forma constante , entonces es mejor que se acostumbre a él. Si cada desarrollador tiene su propio estándar, entonces no hay ningún estándar.


Yo (y mi equipo) preferimos reservar mayúsculas iniciales para los nombres de las clases.

¿Por qué? Estándares de Java que se propagan, creo.


Debería echarle un vistazo a la nueva herramienta de Microsoft, StyleCop , para verificar el código fuente de C #. También esté atento a FxCop para verificar conjuntos .Net compilados. FxCop se centra más en los detalles de lo que hace el código, no en el diseño, pero sí tiene algunas reglas de denominación relacionadas con los nombres públicamente visibles.

StyleCop define un estándar de codificación, que ahora está siendo promovido por Microsoft como un estándar de la industria. Comprueba el código fuente C # contra el estándar. StyleCop se adhiere a su estilo PascalCase.

Conseguir personas en StyleCop (o cualquier otro estándar para el caso) puede ser difícil, es todo un obstáculo, y StyleCop es bastante exhaustivo. Pero el código debe tener un estándar uniforme, y un estándar personal es mejor que ninguno, el estándar de la compañía es mejor que uno personal, y un estándar de la industria es el mejor de todos.

Es mucho más fácil convencer a las personas cuando comienza un proyecto: se está formando un equipo y no hay un código para convertir. Y puede poner herramientas (FxCop, StyleCop) en su lugar para romper la construcción si el código no cumple con los estándares.

Debe usar el estándar para el lenguaje y el marco: el código SQL debe usar estándares SQL, y el código C # debe usar los estándares C #.


De .NET Framework Developer''s Guidebook Convenciones de mayúsculas , mayúsculas y minúsculas:

Las pautas de capitalización existen únicamente para que los identificadores sean más fáciles de leer y reconocer. La carcasa no se puede utilizar como un medio para evitar colisiones de nombres entre los elementos de la biblioteca.

No asuma que todos los lenguajes de programación distinguen entre mayúsculas y minúsculas. Ellos no son. Los nombres no pueden diferir por caso solo.


Ese ejemplo de .NET que publicaste fue una función. El "estándar" adoptado para métodos / funciones es un camel-case con mayúscula (o Pascal, si quiere llamarlo así).

Me apego al estuche de camello donde puedo. Le permite conocer fácilmente la diferencia entre una variable y un método.

Además, soy partidario de poner un guión bajo al frente de las variables de clase locales. Por ejemplo: _localVar .


Para las interfaces públicas, debe seguir las pautas de diseño de MS .NET framework: " Convenciones de capitalización ".

Para los miembros no expuestos, lo que sea que usted y sus colegas puedan estar de acuerdo.


El día en que dejé de programar, es cuando Microsoft hará CamelCase en C # como estándar. Debido a que mi lógica de crecimiento tiene muchas razones para PascalCase, a diferencia de la lógica para niños, a quién le importa solo nombres más cortos o más fácil de escribir.

Y BTW: CamelCasing proviene principalmente del estilo de la biblioteca C ++ STD, el antiguo lenguaje nativo heredado de C. Entonces Java se hereda de C ++. Pero C # - es un lenguaje completamente nuevo - limpio y bello, con nuevas reglas. Oldfags debe programar en Java o C ++, las personas de nueva generación deben programar en C # y nunca deben interactuar.

Considere este ejemplo: 1) PascalCase: list.Capacity.ToString (); 2) CamelCase: list.capacity.toString ();

¡En (1) tenemos CAMEL CASE a largo plazo! significa listCapacityToString. En (2) tenemos chorradas: listcapacitytoString.

Así es como leo Y por qué CamelCase es ilógico para itselt. Podría matar por PascalCase, nunca tocarlo, niños de cualquier edad.

Microsoft: por siempre o hasta que usen PascalCase.


Un enlace a las pautas de diseño oficiales podría ayudar. Específicamente, lea la sección sobre estilos de mayúscula .

En el gran esquema de las cosas, Pascal vs Camel no importa demasiado y no es probable que convenzas a nadie para que revise una base de código existente solo para cambiar el caso de los nombres. Lo que es realmente importante es que quieras ser coherente dentro de una base de código determinada.

Estoy feliz siempre y cuando no estés usando el húngaro.


Lo que prefiera es lo que importa, obviamente apegándose al estándar del equipo principalmente. En privado, usted codifica como quiera, no afecta el producto final, ya sea que haya nombrado alguna variable como Variable o AlgunaVariable.