Tengan un buen día. Me encuentro algo ocupado trabajando en un sistema de control de pólizas para una aseguradora, un sistema en C# 2005 con MySQL, y en equipo con un amigo mío. Este sistema es de gran complejidad, y muchas veces es tan tedioso ver una gran cantidad de líneas de código, que quisieras ocultarlas por un momento, pero en Visual Studio puedes ocultar los cuerpos de los métodos, pero que pasa si quieres ocultar un gran bloque de código? Para ello amig@s mios tenemos lo que es el uso de #region y #endregion, dos "palabras" que técnicamente son conocidas como directivas de preprocesamiento, el objetivo de estas directivas especificamente es el de rotular y poder expandir o colapsar X líneas de código fuente (esto último es posible si usamos Visual Studio o algún otro IDE que soporte esta característica) lo cual es bastante útil ya que nos permite contraer o colapsar código cuando no necesitamos leerlo, o para identificar un cierto bloque de código que haga una determinada función por ejemplo. Luego de tanta palabrería, veamos un ejemplo. Tenemos la siguiente clase:
using System;
using System.Collections.Generic;
using System.Text;
using MySql.Data.MySqlClient;
using System.Windows.Forms;
using System.Collections;
using System.Data;
namespace demo2
{
class agregarAseg : conexiones.conexion
{
public string agregarReg(SortedList datosNewAseg)
{
this.datosNewAseg = datosNewAseg;
addRegistro();
return numAseguradora;
}
MySqlCommand comandito; MySqlDataReader lectorId;
string numAseguradora;
SortedList datosNewAseg = new SortedList();
private void addRegistro()
{
string strInsercion = "INSERT INTO aseguradora VALUES (null,'" + datosNewAseg["nombre"] + "','" + datosNewAseg["ubicacion"] + "','" +
datosNewAseg["numRegFiscal"] + "','" + datosNewAseg["telefono"] + "','" + datosNewAseg["fax"] +
"','" + datosNewAseg["fechaFundacion"] + "','" + datosNewAseg["numAgenda"] +
"','" + datosNewAseg["sitioWeb"] + "','" + datosNewAseg["telAsistencia"] +
"');";
comandito = new MySqlCommand(strInsercion, enlace);
conectarme();
comandito.ExecuteNonQuery();
strInsercion = "SELECT MAX(id) FROM aseguradora;";
comandito = new MySqlCommand(strInsercion, enlace);
lectorId = comandito.ExecuteReader(); lectorId.Read(); numAseguradora = lectorId.GetInt32("MAX(id)").ToString();
desconectarme();
}
}
}
Y por ejemplo, no queremos estar viendo ese sector de código donde declaramos unas variables, este sector para ser mas exactos:
MySqlCommand comandito; MySqlDataReader lectorId;
string numAseguradora;
SortedList datosNewAseg = new SortedList();
Entonces creamos una región, en la cual también vamos a poner una descripcion de ese bloque de código, lo que se hace colocando #region al principio del bloque, seguido por la descripción, y al final del bloque poner #endregion. Al final la clase queda de la siguiente manera:
using System;
using System.Collections.Generic;
using System.Text;
using MySql.Data.MySqlClient;
using System.Windows.Forms;
using System.Collections;
using System.Data;
namespace demo2
{
class agregarAseg : conexiones.conexion
{
public string agregarReg(SortedList datosNewAseg)
{
this.datosNewAseg = datosNewAseg;
addRegistro();
return numAseguradora;
}
#region Aqui va el DataReader para leer los datos de la consulta, un string con la consulta y un SortedList
MySqlCommand comandito; MySqlDataReader lectorId;
string numAseguradora;
SortedList datosNewAseg = new SortedList();
#endregion
private void addRegistro()
{
string strInsercion = "INSERT INTO aseguradora VALUES (null,'" + datosNewAseg["nombre"] + "','" + datosNewAseg["ubicacion"] + "','" +
datosNewAseg["numRegFiscal"] + "','" + datosNewAseg["telefono"] + "','" + datosNewAseg["fax"] +
"','" + datosNewAseg["fechaFundacion"] + "','" + datosNewAseg["numAgenda"] +
"','" + datosNewAseg["sitioWeb"] + "','" + datosNewAseg["telAsistencia"] +
"');";
comandito = new MySqlCommand(strInsercion, enlace);
conectarme();
comandito.ExecuteNonQuery();
strInsercion = "SELECT MAX(id) FROM aseguradora;";
comandito = new MySqlCommand(strInsercion, enlace);
lectorId = comandito.ExecuteReader(); lectorId.Read(); numAseguradora = lectorId.GetInt32("MAX(id)").ToString();
desconectarme();
}
}
}
De esta manera, rotulamos el código donde declaramos las variables y al trabajar en un IDE que soporte la expansion y colapsamiento podremos ocultar ese código y ver unicamente la descripción de dicho bloque, y si queremos volver a expandirlo, veanlo en la imagen de abajo (Haga click para verla mas grande)
Espero que les sirva tanto como a mi.
