Introducción a C# - Instituto Tecnológico de Nuevo Laredo

Anuncio
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
int
double
strNombre;
intCantidad;
dblPrecioTotal;
Tipo de Dato
int
long
byte
float
double
bool
char
string
DateTime
Prefijo Ejemplo
int
lng
byt
flt
dbl
bln
chr
str
dtm
intCantidad
lngIndice
bytData
fltTotalAnual
dblTotal
blnExiste
chrLetra
strNombre
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
public
public
public
public
class
class
class
class
class
Cuadrado {}
Pantalla {}
Cliente {}
ClienteVIP {}
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
public
public
public
void RemoveAll();
bool Insertar();
char GetCharAt();
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;
string
_strRazonSocial;
// Por ser privadas de la clase(Fields) tiene "_".
// 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
Button
Calendar
Checkbox
CheckBoxList
ComboBox
DataGrid
DataList
DateTimePicker
Dialog, ColorDialog, FontDialog
Image
Label
LinkLabel
ListBox
ListView
MainMenu
MenuItem
Panel
PictureBox
RadioButton
RadioButtonList
RichTextBox
Repeater
TabControl
TextBox
TreeView
ToolBar
Timer
Validators (Todos)
ValidationSummary
v 2.0.2
Prefijo
btn
cal
chk
chkl
cbo
dtg
dlst
dtp
dlg
img
lbl
lbl
lst
lvw
mnu
mnu
pnl
pic
rad
rbl
rtb
rep
tab
txt
tvw
tbr
tmr
val
vals
Ejemplo
btnSave
calMyDate
chkMailList
chklAddress
cboProvincias
dtgClientes
dlstProductos
dtpFechaInicio
dlgFileSave, dlgColores
imgLogo
lblApellido
lblWebPage
lstCompany
lvwRecibos
mnuArchivo
mnuCerrar
panSection
picLogo
radSex
rblAgeGroup
rtbDocumento
repSection
tabUsuario
txtApellido
tvwDirectorios
tbrStatus
tmrSegundos
valCreditCardNumber
valsErrors
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
private static bool
}
v 2.0.2
_intItemHash;
_blnYaSeRealizo;
// miembro de instancia
// miembro estático
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.
Console.In.Read(myChar, 0, 1);
Correcto:
Console.In.Read(myChar,0,1);
Incorrecto:
No utilice un espacio después del paréntesis y el primer argumento de un método.
CreateFoo(myChar, 0, 1)
Correcto:
CreateFoo( myChar, 0, 1 )
Incorrecto:
No utilice espacios entre el nombre de un método y los paréntesis.
CreateFoo()
Correcto:
CreateFoo ()
Incorrecto:
No utilice espacios dentro de los corchetes.
Correcto:
Incorrecto:
x = dataArray[index];
x = dataArray[ index ];
Utilice un espacio antes de las expresiones a evaluar, en las sentencias de control.
while (x == y)
Correcto:
while(x==y)
Incorrecto:
Utilice un espacio antes y después de los operadores de comparación.
if (x == y)
Correcto:
if (x==y)
Incorrecto:
v 2.0.2
6 de 6
Descargar