Está en la página 1de 6

Convención de codificación en C# (Alumnos) Ulman 2013

1. Convenciones de escritura para proyectos en .NET / C#.


Estilos de Letras Capitales
Definimos tres tipos de escritura de identificadores o palabras.

Pascal Case
La primera letra en la identificación y la primera letra de cada palabra concatenada subsiguiente se pone en mayúsculas.

Ejemplo:
BackColor, DataSet

Camel Case
La primera letra en la identificación es minúscula y la primera letra de cada palabra concatenada subsiguiente se pone en mayúsculas.

Ejemplo:
numeroDeDias, esValido

Upper Case
Todas las letras en el identificador deben ser en mayúsculas Use esta convención sólo en los identificadores que consisten en dos o
menos letras.

Ejemplo:
ID, PI

Notación Húngara
La notación húngara es una convención de identificación de las variables en un programa de computación. Esta especificación indica
que cada variable debe ir precedida por un indicador de 1 o más letras que especifican el tipo de variable.

Ejemplo:
string strNombre;
int intCantidad;
double dblPrecioTotal;

Tipo de Dato Prefijo Ejemplo


int int intCantidad
long lng lngIndice
byte byt bytData
float flt fltTotalAnual
double dbl dblTotal
bool bln blnExiste
char chr chrLetra
string str strNombre
DateTime dtm dtmFechaDeNacimiento
Tabla de Tipos de Datos de C# y su prefijo para la Notación Húngara.

2. Convenciones de Nombramiento
Variables Privadas (Fields en C#)
 Se debe utilizar Camel Case.
 Se debe identificar a la variable con la Notación Húngara.
 Se debe identificar con el Prefijo "_".

Ejemplo:
public class Cliente {
string _strNombre; // Por ser privadas de la clase(Fields) tiene "_".
/// <summary>
/// Propiedad Public Nombre
/// </summary>
public string Nombre {
get {return _strNombre;}
set {_strNombre = value;}
}
}

v 2.0.2 1 de 6
Convención de codificación en C# (Alumnos) Ulman 2013

Variables Locales
 Se debe utilizar Camel Case.
 Se debe identificar a la variable con la Notación Húngara

Ejemplo:
public override string ToString() {
string strReturnValue = "";
strReturnValue += "Este es un String... \n";
return strReturnValue;
}

Namespaces
La regla general para el nombramiento de espacios de Nombres consiste en utilizar la compañía seguida de la Tecnología empleada.
Opcionalmente se puede indicar la característica y diseño.

using CompanyName.TechnologyName[.Feature][.Design];

Ejemplo:
using ORT.Buggy;
using ORT.Buggy.Windows;
using ORT.Buggy.SerialPort;

Clases
 Se debe utilizar un sustantivo para nombrar una clase.
 Se debe utilizar Pascal Case.
 No se debe utilizar ningún tipo de prefijo para denominar la clase como C o T.
 No se debe utilizar el caracter (_).

Ejemplo:
public class Cuadrado {}
public class Pantalla {}
public class Cliente {}
public class ClienteVIP {}
public class Factura {}

Parámetros
 Se deben utilizar nombres descriptivos para los nombres de los parámetros.
 Se debe utilizar Camel Case.
 Se debe identificar a los parámetros con la Notación Húngara

Ejemplo:
public bool Existe(int intCodigo, bool blnExtended) {}
public Cliente GetByCodigo(int intCodigo, bool blnExtended) {}

Métodos
 Se deben utilizar verbos o frases con verbos para identificar a los métodos.
 Se debe utilizar Pascal Case.

Ejemplo:
public void RemoveAll();
public bool Insertar();
public char GetCharAt();
public Factura GetUltimaFactura();

Enumeraciones
 Se debe utilizar Pascal Case.
 No se debe utilizar la notación Húngara.
 Se debe utilizar el sufijo “Enum” en las enumeraciones.
 Evite cambiar el tipo de dato de la enumeración. Por default es int

Ejemplo:
public enum ClientesEnum {
Codigo,
Nombre,
Orden ,
Activo
};

v 2.0.2 2 de 6
Convención de codificación en C# (Alumnos) Ulman 2013

Propiedades
 Se debe utilizar Pascal Case.
 No se debe utilizar la notación Húngara.

Ejemplo:
public class Cliente {
int _intCodigo; // Por ser privadas de la clase(Fields) tiene "_".
string _strRazonSocial; // Por ser privadas de la clase(Fields) tiene "_".

public int Codigo {


get {return _intCodigo;}
set {_intCodigo = value;}
}
public string RazonSocial {
get {return _strRazonSocial;}
set {_strRazonSocial = value;}
}
}

Excepciones
Los Manejdores de Eventos en .NET tienden a utilizar “e” como parametro en la invocacion al evento. Para asegurarnos de que no
exista conflicto alguno con este parametro, utilizaremos “ex” como la variable estandar del tipo Exception.

Ejemplo:
private void Page_Load(object sender, System.EventArgs e){
...
try{
...
}catch(Exception ex){
MessageBox.Show(ex.Message)
}
}

3. Notación de los controles Visuales:


Esta notación debe respetarse tanto para los controles Windows y Web.
Control Prefijo Ejemplo
Button btn btnSave
Calendar cal calMyDate
Checkbox chk chkMailList
CheckBoxList chkl chklAddress
ComboBox cbo cboProvincias
DataGrid dtg dtgClientes
DataList dlst dlstProductos
DateTimePicker dtp dtpFechaInicio
Dialog, ColorDialog, FontDialog dlg dlgFileSave, dlgColores
Image img imgLogo
Label lbl lblApellido
LinkLabel lbl lblWebPage
ListBox lst lstCompany
ListView lvw lvwRecibos
MainMenu mnu mnuArchivo
MenuItem mnu mnuCerrar
Panel pnl panSection
PictureBox pic picLogo
RadioButton rad radSex
RadioButtonList rbl rblAgeGroup
RichTextBox rtb rtbDocumento
Repeater rep repSection
TabControl tab tabUsuario
TextBox txt txtApellido
TreeView tvw tvwDirectorios
ToolBar tbr tbrStatus
Timer tmr tmrSegundos
Validators (Todos) val valCreditCardNumber
ValidationSummary vals valsErrors

v 2.0.2 3 de 6
Convención de codificación en C# (Alumnos) Ulman 2013

4. Guía de estilo de Codificación


Tabs e Indentado
El código debe ser indentado presionando la tecla Tab.

Utilización de las Llaves


Las Llaves deben comenzar siempre en la misma línea de la instrucción. El contenido de las llaves debe estar indentado con 1 (un)
Tab.

Ejemplo:
if (unaExpresion){
HacerAlgo ();
}else{
HacerOtraCosa ();
}

Las sentencias “case” deben estar indentadas según el siguiente ejemplo.

Ejemplo:
switch (unaExpresion) {
case 0:{
HacerAlgo();
break;
}
case 1:{
HacerOtraCosa();
break;
}
case 2:{
int n = 1;
HacerAlgoMas(n);
break;
}
}

Las llaves nunca deben considerarse opcionales, se deben utilizar aunque exista una sola instrucción. De esta nabera se
incrementa la legibilidad del código y su mantenimiento.

Ejemplo:
for (int i=0; i < 100; i++) {
HacerAlgo (i);
}

Instrucciones de una sola línea


Las instrucciones de una sola línea pueden tener llaves en la misma línea, como comienzo y fin de la instrucción.

public class Persona {


int _strNombre; // Por ser privadas de la clase (Fields) tiene "_".
public int Nombre{
get {return _strNombre;}
set {_strNombre = value;}
}
}

Se debe considerar como obligatorio la utilización de llaves en todas las estructuras de control (if, while, for, etc.), aunque
contengan una sola sentencia.

v 2.0.2 4 de 6
Convención de codificación en C# (Alumnos) Ulman 2013

5. Comentado del Código


Los comentarios deben ser utilizados para describir la intención, algorítmica y funcionamiento o lógica.
Seria ideal si alguien diferente del el autor del comentario, pudiese comprender el comportamiento del método, solamente leyendo el
comentario del código.

Notificación de Derechos (Copyright Notice)


Cada Archivo debe comenzar con un aviso legal (copyright notice).

Ejemplo:
//-------------------------------------------------------------------
// <copyright file="Buggy.cs" company="ORT Agentina">
// Copyright (c) ORT Agentina. All rights reserved.
// </copyright>
//-------------------------------------------------------------------

Comentarios en la Documentación
Todos los métodos deben utilizar el formato XML para la documentación. Existen herramientas tanto en Visual Studio, como de
terceras partes para generar la documentación automática a partir de Tags XML.
Para generar el encabezado standard de la documentación simplemente debemos posicionarnos en la línea previa al comienzo del
método, y presionar 3 veces el caracter “/”. (///)

Ejemplo:
/// <summary>
/// Incrementar los Vuelos del Usuario, y actualizar su nombre.
/// </summary>
/// <param name="intUsuario">Codigo de Usuario</param>
/// <param name="strNombre">Nuevo nombre del Usuario.</param>
/// <returns>Retorna true en caso de que la cantidad ...</returns>
public bool Incrementar(int intUsuario, string strNombre) {
bool blnReturnValue = false;
// Cuerpo del Metodo
// ...
return blnReturnValue;
}

Estilos de Comentado
La utilización del comentado utilizando las 2 barras //, deben utilizarse en varias situaciones. Siempre que sea posible, inserte los
comentarios sobre el Codigo y no por debajo.

Ejemplo:
// Se requiere para la utilización a traves del Proxy.
GlobalProxySelection.Select = new WebProxy("http://www.polshu.com.ar");

// Creación de un objeto para acceder a los recursos de Internet


WebClient myClient = new WebClient();

Los comentarios deben insertarse al final de la línea, cuando el espacio lo permita.


public class AlgoUtil {
private int _intItemHash; // miembro de instancia
private static bool _blnYaSeRealizo; // miembro estático
}

v 2.0.2 5 de 6
Convención de codificación en C# (Alumnos) Ulman 2013

Espaciado
Los espacios incrementan la legibilidad, y decrementan la densidad del código. A continuación se describen algunas reglas a cumplir

Ejemplo:

Utilice un espacio luego de una coma, entre los argumentos de una invocación a un método.
Correcto: Console.In.Read(myChar, 0, 1);
Incorrecto: Console.In.Read(myChar,0,1);

No utilice un espacio después del paréntesis y el primer argumento de un método.


Correcto: CreateFoo(myChar, 0, 1)
Incorrecto: CreateFoo( myChar, 0, 1 )

No utilice espacios entre el nombre de un método y los paréntesis.


Correcto: CreateFoo()
Incorrecto: CreateFoo ()

No utilice espacios dentro de los corchetes.


Correcto: x = dataArray[index];
Incorrecto: x = dataArray[ index ];

Utilice un espacio antes de las expresiones a evaluar, en las sentencias de control.


Correcto: while (x == y)
Incorrecto: while(x==y)

Utilice un espacio antes y después de los operadores de comparación.


Correcto: if (x == y)
Incorrecto: if (x==y)

v 2.0.2 6 de 6

También podría gustarte