programacion practicas para notacion nomenclatura indentación hungara estándares convención convenciones codigos c# naming-conventions

practicas - notacion hungara para c#



Convención de nomenclatura en c# (6)

El estándar .NET de Microsoft es usar Pascal Case para espacios de nombres, miembros públicos y miembros protegidos (básicamente, cualquier elemento visible para otras clases). Para los miembros privados y las variables locales, hay un lugar mucho más amplio para hacer lo que sea más cómodo para usted y su equipo.

¿Cuál es la convención de nomenclatura aceptada universalmente para c #? (funciones, clases, parámetros, variables locales, espacios de nombres, etc.)



Las pautas de resharper sugieren

  • Tipos y espacios de nombres UpperCamelCase
  • Interfaces IUpperCamelCase Tipo de parámetros TUpperCamelCase
  • Métodos propiedades y eventos UpperCamelCase Local
  • variables lowerCamelCase constantes locales lowerCamelCase
  • Parámetros de los campos lowerCamelCase (no privados) UpperCamelCase
  • Campos de instancia (privado) _lowerCamelCase
  • Campo estático (privado) _lowerCamelCase
  • Campos constantes (no privados) UpperCamelCase
  • Campos constantes (privados) UpperCamelCase
  • Campos de solo lectura estáticos (no privados) UpperCamelCase
  • Campos de solo lectura estáticos (privados) UpperCamelCase
  • Enum los miembros UpperCamelCase
  • Todas las demás entidades UpperCamelCase

Me gustaría ver el libro delgado llamado " Elementos del estilo C # " de Baldwin, Gray, & Misfeldt. El libro azul cubre las convenciones de nomenclatura y muchos otros aspectos de la creación de código coherente, limpio y legible.


Microsoft tiene un excelente conjunto de pautas sobre el diseño de bibliotecas de clases , incluida una sección sobre nombres . En resumen (ejemplos entre paréntesis):

  • Clases / Estructuras: PascalCase ( WebRequest )
  • Interfaces: PascalCase con prefijo I ( IDisposable )
  • Métodos: PascalCase ( ToUpper )
  • Propiedades: PascalCase ( Length )
  • Eventos: PascalCase ( Click )
  • Espacios de nombres: PascalCase ( System.Collections ; aunque es raro tener dos palabras en una parte)
  • Variables no constantes que incluyen parámetros: camelCased ( keySelector )
  • Constantes: PascalCase ( Int32.MaxValue )
  • Enums: PascalCase, singular para non-flags y plural para flags ( HttpStatusCode , BindingFlags )
  • Atributos: PascalCase con el sufijo "Atributo" ( ThreadStaticAttribute )

Los nombres privados dependen de usted, pero tiendo a seguir las mismas convenciones que para todo lo demás. Se desaconseja la notación húngara (al estilo de Win32), aunque muchos lugares usan "m_" o "_" como prefijo para las variables de instancia.


No subestime el valor de seguir las convenciones de nomenclatura de la plataforma en la que está trabajando lo más cerca posible.

Consulte el material de referencia de .NET Framework para ver ejemplos de cómo "encajar" ( http://msdn.microsoft.com/en-us/library/ms229335.aspx ).

Jon Skeet le ha proporcionado un enlace a una buena revisión de Microsoft: http://msdn.microsoft.com/en-us/library/ms229042.aspx

También puede usar el Microsoft FxCop independiente (o el Análisis de Código si tiene la Edición para Equipos) http://www.microsoft.com/downloads/details.aspx?FamilyID=9aeaa970-f281-4fb0-aba1-d59d7ed09772&DisplayLang=en para verificar Que se han seguido las convenciones de nomenclatura. Tiene reglas incorporadas para las convenciones de Microsoft, que es otra razón por la que debería usarlas.