variable reusable programming practices patterns net namespace guidelines framework for convenciones coding best and c# naming-conventions resharper framework-design

reusable - interface naming convention c#



ReSharper se queja de "ID" en mayúsculas en el miembro "EntityID" (4)

¿Desea atenerse a las recomendaciones de las Pautas de diseño del marco, o desea utilizar la ID mayúsculas independientemente?

La última versión de las directrices tiene esto que decir:

Las dos abreviaturas que se pueden usar en los identificadores son ID y OK . En los identificadores en cascos de Pascal, deben aparecer como Id y Ok . Si se usa como la primera palabra en un identificador en camello, deberían aparecer como id y ok , respectivamente.

Así que parece que ReSharper es correcto en el caso de Id .

Sin interés, ReSharper también recomienda que las siglas de dos caracteres sigan las mismas reglas de carcasa. Esto está en desacuerdo con las pautas: "Ponga mayúsculas en los caracteres de dos caracteres, excepto la primera palabra de un identificador de camello".

Tengo una propiedad "EntityID" en una clase. Resharper (5.1) dice

El nombre ''EntityID'' no coincide con la regla ''Métodos, propiedades y eventos''. El nombre sugerido es ''EntityId''.

Pero en mi humilde opinión según las convenciones de nomenclatura en las Pautas de diseño para desarrolladores de bibliotecas de clases . ''EntityID'' debe estar perfectamente bien:

  • No utilice acrónimos que generalmente no se aceptan en el campo de la computación.
  • Cuando sea apropiado, utilice acrónimos conocidos para reemplazar nombres de frases largas. Por ejemplo, use la interfaz de usuario para la interfaz de usuario y OLAP para el procesamiento analítico en línea.
  • Cuando use acrónimos, use el caso de Pascal o el caso de camello para acrónimos de más de dos caracteres. Por ejemplo, use HtmlButton o htmlButton. Sin embargo, debe usar mayúsculas para las siglas que constan de solo dos caracteres, como System.IO en lugar de System.Io.
  • No utilice abreviaturas en identificadores o nombres de parámetros. Si debe usar abreviaturas, use la caja del camello para abreviaturas que constan de más de dos caracteres, incluso si esto contradice la abreviatura estándar de la palabra

* Actualización: * La última versión de las directrices también dice:

Ponga en mayúscula los dos caracteres de las siglas de dos caracteres, excepto la primera palabra de un identificador en camello. Una propiedad llamada DBRate es un ejemplo de un acrónimo corto (DB) utilizado como la primera palabra de un identificador con caracteres de Pascal. Un parámetro llamado ioChannel es un ejemplo de un acrónimo corto (IO) utilizado como la primera palabra de un identificador de camello.

¿Estoy entendiendo las pautas correctamente? Si es así, ¿cómo puedo hacer que ReSharper acepte "EntityID" (conocido acrónimo de dos letras) pero rechace "HTMLReader" (debería ser HtmlReader)?


¿Qué pasa con "Agregar ''ID'' a la lista de abreviaturas"?


La solución más sencilla sería ir a las Opciones de ReSharper, en la pestaña "Estilo de nombre de C #", asegurarse de que la opción "Anular configuraciones comunes" esté seleccionada y luego hacer doble clic en "Métodos, propiedades y eventos". Haga clic en "Agregar" para agregar uno nuevo y configurarlo en "UpperCamelCase" con un sufijo de nombre de "ID".

Añade sufijos adicionales a tu gusto.

También puedes hacerlo con el botón "Configuración avanzada ..." en la página "Estilo de nombre de C #", que te da mucha más flexibilidad, pero no me molestaría en eso ...


Si desea que ReSharper tenga "ID" como abreviatura válida para "Identity", simplemente seleccione la propiedad, presione "Alt-Enter" y luego seleccione "Agregar ''ID'' a la lista de abreviaturas" en el menú contextual de ReSharper.