You are on page 1of 6

Convencin de codificacin en C# (Alumnos) Ulman 2013

v 2.0.2 1 de 6
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 identificacin y la primera letra de cada palabra concatenada subsiguiente se pone en maysculas.

Ejemplo:
BackColor, DataSet

Camel Case
La primera letra en la identificacin es minscula y la primera letra de cada palabra concatenada subsiguiente se pone en maysculas.

Ejemplo:
numeroDeDias, esValido

Upper Case
Todas las letras en el identificador deben ser en maysculas Use esta convencin slo en los identificadores que consisten en dos o
menos letras.

Ejemplo:
ID, PI

Notacin Hngara
La notacin hngara es una convencin de identificacin de las variables en un programa de computacin. Esta especificacin i ndica
que cada variable debe ir precedida por un indicador de 1 o ms 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 Notacin Hngara.

2. Convenciones de Nombramiento

Variables Privadas (Fields en C#)
Se debe utilizar Camel Case.
Se debe identificar a la variable con la Notacin Hngara.
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;}
}
}

Convencin de codificacin en C# (Alumnos) Ulman 2013
v 2.0.2 2 de 6
Variables Locales
Se debe utilizar Camel Case.
Se debe identificar a la variable con la Notacin Hngara

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 compaa seguida de la Tecnologa empleada.
Opcionalmente se puede indicar la caracterstica y diseo.

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 ningn 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 {}

Parmetros
Se deben utilizar nombres descriptivos para los nombres de los parmetros.
Se debe utilizar Camel Case.
Se debe identificar a los parmetros con la Notacin Hngara

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

Mtodos
Se deben utilizar verbos o frases con verbos para identificar a los mtodos.
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 notacin Hngara.
Se debe utilizar el sufijo Enum en las enumeraciones.
Evite cambiar el tipo de dato de la enumeracin. Por default es int

Ejemplo:
public enum ClientesEnum {
Codigo,
Nombre,
Orden ,
Activo
};
Convencin de codificacin en C# (Alumnos) Ulman 2013
v 2.0.2 3 de 6
Propiedades
Se debe utilizar Pascal Case.
No se debe utilizar la notacin Hngara.

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. Notacin de los controles Visuales:
Esta notacin 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

Convencin de codificacin en C# (Alumnos) Ulman 2013
v 2.0.2 4 de 6
4. Gua de estilo de Codificacin

Tabs e Indentado
El cdigo debe ser indentado presionando la tecla Tab.

Utilizacin de las Llaves
Las Llaves deben comenzar siempre en la misma lnea de la instruccin. El contenido de las llaves debe estar indentado con 1 (un)
Tab.

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

Las sentencias case deben estar indentadas segn 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 instruccin. De esta nabera se
incrementa la legibilidad del cdigo y su mantenimiento.

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

Instrucciones de una sola lnea
Las instrucciones de una sola lnea pueden tener llaves en la misma lnea, como comienzo y fin de la instruccin.

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 utilizacin de llaves en todas las estructuras de control (if, while, for, etc.), aunque
contengan una sola sentencia.
Convencin de codificacin en C# (Alumnos) Ulman 2013
v 2.0.2 5 de 6
5. Comentado del Cdigo
Los comentarios deben ser utilizados para describir la intencin, algortmica y funcionamiento o lgica.
Seria ideal si alguien diferente del el autor del comentario, pudiese comprender el comportamiento del mtodo, solamente leyendo el
comentario del cdigo.

Notificacin 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 Documentacin
Todos los mtodos deben utilizar el formato XML para la documentacin. Existen herramientas tanto en Visual Studio, como de
terceras partes para generar la documentacin automtica a partir de Tags XML.
Para generar el encabezado standard de la documentacin simplemente debemos posicionarnos en la lnea previa al comienzo del
mtodo, 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 utilizacin 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 utilizacin a traves del Proxy.
GlobalProxySelection.Select = new WebProxy("http://www.polshu.com.ar");

// Creacin de un objeto para acceder a los recursos de Internet
WebClient myClient = new WebClient();

Los comentarios deben insertarse al final de la lnea, cuando el espacio lo permita.
public class AlgoUtil {
private int _intItemHash; // miembro de instancia
private static bool _blnYaSeRealizo; // miembro esttico
}

Convencin de codificacin en C# (Alumnos) Ulman 2013
v 2.0.2 6 de 6
Espaciado
Los espacios incrementan la legibilidad, y decrementan la densidad del cdigo. A continuacin se describen algunas reglas a cumplir

Ejemplo:

Utilice un espacio luego de una coma, entre los argumentos de una invocacin a un mtodo.
Correcto: Console.In.Read(myChar, 0, 1);
Incorrecto: Console.In.Read(myChar,0,1);

No utilice un espacio despus del parntesis y el primer argumento de un mtodo.
Correcto: CreateFoo(myChar, 0, 1)
Incorrecto: CreateFoo( myChar, 0, 1 )

No utilice espacios entre el nombre de un mtodo y los parntesis.
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 despus de los operadores de comparacin.
Correcto: if (x == y)
Incorrecto: if (x==y)

You might also like