C# Language
Convenciones de nombres
Buscar..
Introducción
Este tema describe algunas convenciones básicas de nomenclatura utilizadas al escribir en el lenguaje C #. Como todas las convenciones, el compilador no las impone, pero garantizará la legibilidad entre los desarrolladores.
Para conocer las pautas de diseño del marco .NET, consulte docs.microsoft.com/dotnet/standard/design-guidelines .
Observaciones
Elija nombres de identificadores fácilmente legibles
Por ejemplo, una propiedad llamada HorizontalAlignment es más legible en inglés que AlignmentHorizontal.
Favorecer la legibilidad sobre la brevedad.
El nombre de la propiedad CanScrollHorizontally
es mejor que ScrollableX
(una referencia poco ScrollableX
al eje X).
Evite usar guiones bajos, guiones o cualquier otro carácter no alfanumérico.
No utilice la notación húngara
La notación húngara es la práctica de incluir un prefijo en los identificadores para codificar algunos metadatos sobre el parámetro, como el tipo de datos del identificador, por ejemplo, string strName
.
Además, evite utilizar identificadores que entren en conflicto con las palabras clave que ya se utilizan en C #.
Abreviaciones y acronimos
En general, no debe utilizar abreviaturas o acrónimos; esto hace que sus nombres sean menos legibles. Del mismo modo, es difícil saber cuándo es seguro asumir que un acrónimo es ampliamente reconocido.
Convenios de capitalización
Los siguientes términos describen diferentes maneras de identificar los casos.
Pascal Casing
La primera letra del identificador y la primera letra de cada palabra concatenada subsiguiente están en mayúscula. Puede usar el caso de Pascal para identificadores de tres o más caracteres. Por ejemplo: BackColor
Carcasa de camello
La primera letra de un identificador es minúscula y la primera letra de cada palabra concatenada subsiguiente se escribe con mayúscula. Por ejemplo: backColor
Mayúsculas
Todas las letras en el identificador están en mayúscula. Por ejemplo: IO
Reglas
Cuando un identificador consta de varias palabras, no use separadores, como guiones bajos ("_") o guiones ("-"), entre palabras. En su lugar, utilice la caja para indicar el comienzo de cada palabra.
La siguiente tabla resume las reglas de uso de mayúsculas para los identificadores y proporciona ejemplos para los diferentes tipos de identificadores:
Identificador | Caso | Ejemplo |
---|---|---|
Variable local | Camello | nombre del coche |
Clase | Pascal | AppDomain |
Tipo de enumeración | Pascal | Nivel de errores |
Valores de enumeración | Pascal | Error fatal |
Evento | Pascal | ValueChanged |
Clase de excepcion | Pascal | WebException |
Campo estático de solo lectura | Pascal | RedValue |
Interfaz | Pascal | IDisponible |
Método | Pascal | Encadenar |
Espacio de nombres | Pascal | Sistema.Dibujo |
Parámetro | Camello | escribe un nombre |
Propiedad | Pascal | BackColor |
Se puede encontrar más información en MSDN .
Interfaces
Las interfaces deben nombrarse con sustantivos o frases nominales, o adjetivos que describan el comportamiento. Por ejemplo, IComponent
usa un nombre descriptivo, ICustomAttributeProvider
usa una frase de nombre e IPersistable
usa un adjetivo.
Los nombres de la interfaz deben tener un prefijo con la letra I
, para indicar que el tipo es una interfaz, y se debe usar el caso Pascal.
A continuación se muestran correctamente las interfaces con nombre:
public interface IServiceProvider
public interface IFormatable
Campos privados
Hay dos convenciones comunes para los campos privados: camelCase
y _camelCaseWithLeadingUnderscore
.
El caso de Carmel
public class Rational
{
private readonly int numerator;
private readonly int denominator;
public Rational(int numerator, int denominator)
{
// "this" keyword is required to refer to the class-scope field
this.numerator = numerator;
this.denominator = denominator;
}
}
Funda de camello con subrayado.
public class Rational
{
private readonly int _numerator;
private readonly int _denominator;
public Rational(int numerator, int denominator)
{
// Names are unique, so "this" keyword is not required
_numerator = numerator;
_denominator = denominator;
}
}
Espacios de nombres
El formato general para los espacios de nombres es:
<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>].
Ejemplos incluyen:
Fabrikam.Math
Litware.Security
El prefijo de nombres de espacios de nombres con un nombre de compañía evita que los espacios de nombres de diferentes compañías tengan el mismo nombre.
Enums
Usa un nombre singular para la mayoría de Enums
public enum Volume
{
Low,
Medium,
High
}
Utilice un nombre plural para los tipos Enum que son campos de bits
[Flags]
public enum MyColors
{
Yellow = 1,
Green = 2,
Red = 4,
Blue = 8
}
Nota: siempre agregue el FlagsAttribute
a un tipo de bit de campo de bit.
No agregue 'enumeración' como sufijo
public enum VolumeEnum // Incorrect
No utilice el nombre de enumeración en cada entrada
public enum Color
{
ColorBlue, // Remove Color, unnecessary
ColorGreen,
}
Excepciones
Añadir 'excepción' como sufijo
Los nombres de excepción personalizados deben tener el sufijo "-Exception".
Debajo están las excepciones correctamente nombradas:
public class MyCustomException : Exception
public class FooException : Exception