2008-11-20 27 views
6

Como programador principiante, estoy tratando de establecer una convención de nomenclatura estándar para mí. Me doy cuenta de que es una preferencia personal, pero estaba tratando de obtener algunas ideas de algunos de ustedes (bueno MUCHOS de ustedes) que son mucho más inteligentes que yo.¿Qué convenciones de nomenclatura usas en C#?

No estoy hablando de la notación de camello, sino de cómo nombras tus variables, etc. En mi humilde opinión, var_Quantity es mucho más descriptivo que Q o varQ. Sin embargo, ¿cómo evitar que la variable sea demasiado larga? Intenté ser más descriptivo al nombrar mis controles, pero terminé con algunos como "rtxtboxAddrLine1" para un RadTextBox que contiene la línea de dirección 1. Demasiado para mí, eso es inmanejable, aunque está bastante claro qué es ese control.

Tengo curiosidad por si tiene algunas guías que seguir o me quedan en mis propios dispositivos?

Respuesta

1

Cuanto más descriptivo mejor, encontrará que la longitud no es tan importante como recordar lo que ese control/variable hizo cinco años después.

5

En este caso, creo que sería mejor nombrarlo como primaryAddressLine o firstAddressLine. He aquí por qué: rtxt como prefijo te dice inútilmente el tipo. Intellisense te ayudará con el tipo y es inmune a los cambios realizados en el tipo de objeto real. Llamarlo firstAddressLine lo mantiene alejado de la (pobre) convención de usar 1, 2, 3 ... al final de los nombres de las variables para indicar que por alguna razón necesitabas más de ellos en lugar de una colección.

Nómbrelo por lo que representa/cómo debe interpretarse o no para su tipo de datos, y al nombrarlo no lo abreviará si no lo necesita.

1

por lo general tratan de seguir las directrices de Microsoft, con unos hábitos muy viejos tirado.
Por lo tanto, todavía no puede salir de la costumbre de prefijar partes íntimas con un _privateMember subrayado.
Soy viejo, y eso se quemó en mi cerebro.

En cuanto a los widgets de control de prefijación, he encontrado que si te vuelves demasiado descriptivo, puede ser doloroso, en el caso de cambiar la UI por la pista.

p. Ej. tiene algo llamado ddlProductLine para una lista desplegable, y luego tiene que cambiar a un grupo de botones de opción, su convención de prefijo comienza a ser más útil que PITA.

Cuando tiene muchos widgets para trabajar, a veces un prefijo más genérico como uiCtl puede ayudar con el desorden, pero aún tiene sentido si tiene que cambiar el tipo de widget.

1

Me gusta este documento:

C# Coding Standars for .NET (zip)

Es una buena recopilación de las mejores prácticas y pautas de estilo de codificación.

5

El Guidelines for Names es el mejor punto de partida. Pero como en otras áreas de la vida, una vez que conoces las reglas, comienzas a saber dónde es razonable romperlas.

Nunca utilizo la antigua notación húngara que llama a las cosas strFirstName, intCount, y similares; pero aún lo uso en los controles: txtFirstName, btnVerifyData, etc. Las razones incluyen:

  • No soy tan probable que cambie el tipo de un control
  • Si yo hago cambiar el tipo de un control , Tendré que cambiar un montón de cosas, no solo el nombre, así que cambiar el nombre tampoco es gran cosa
  • Son mucho más fáciles de encontrar con Intellisense.

Además, estoy bastante probable que lo haga lo mismo a muchos de los cuadros de texto o cuadros combinados en una página o formulario, mientras que yo no soy probable que hacer algo para todos los enteros o cadenas que se refiere el una página o formulario Por lo tanto, es útil poder encontrar rápidamente todos los TextBoxes con su prefijo txt.

Hay otros, sin embargo, que se oponen rotundamente al húngaro incluso en este caso, y estoy seguro de que tienen sus razones. Independientemente de su estilo personal, puede encontrarse trabajando en un equipo que tiene un estilo muy diferente. En ese caso, solo haz lo que hacen; es muy, muy raro que valga la pena mencionarlo. La única vez que lo haría es si su estilo lleva a muchos errores, pero fuera de mi cabeza no puedo pensar en un caso que cause eso.

+0

Gracias por esto. ¡Lo imprimí! – GregD

Cuestiones relacionadas