Estos métodos permiten agregar funcionalidades especiales a los controles que se exponen en los formularios.
Para ponerlo a prueba vamos a crear tres funciones que nos van a permitir obtener el contenido de un TextBox como un valor de tipo fecha, entero y decimal.
Estos métodos puedes implementarlos en alguna de tus clases estáticas.
/// <summary>
/// Devuelve un valor del tipo Fecha desde el contenido de un TextBox
/// Si el valor no es una fecha válida obtiene el valor mínimo para una fecha
/// </summary>
/// <param name=”txt“></param>
/// <returns></returns>
public static DateTime ToDate(this TextBox TextValue)
{
DateTime idate = DateTime.MinValue;
DateTime.TryParse(TextValue.Text, out idate);
return idate;
}
/// <summary>
/// Devuelve un valor del tipo entero desde el contenido de un TextBox
/// Si el valor no es un entero válido obtiene el valor mínimo para un entero
/// </summary>
/// <param name=”TextValue“>Valor entrado en el TextBox</param>
/// <returns></returns>
public static int ToInteger(this TextBox TextValue)
{
int iInt = int.MinValue;
int.TryParse(TextValue.Text, out iInt);
return iInt;
}
/// <summary>
/// Devuelve un valor del tipo double desde el contenido de un TextBox
/// Si el valor no es un double válido obtiene el valor mínimo para un double
/// </summary>
/// <param name=”TextValue“>Valor entrado en el TextBox</param>
/// <returns></returns>
public static double ToDouble(this TextBox TextValue)
{
double iDbl = double.MinValue;
double.TryParse(TextValue.Text, out iDbl);
return iDbl;
}
Crea un formulario con el que poner a prueba tus métodos e extensión, puede ser parecido al siguiente:
En el evento clic de los botones agrega el siguiente código:
private void button1_Click(object sender, EventArgs e)
{
var fecha = this.txtFecha.ToDate();
this.lblFecha.Text = fecha.AddDays(1).ToString(“dddd, dd – MMM – yyyy”);
}
private void button2_Click(object sender, EventArgs e)
{
var entero = this.txtEntero.ToInteger();
this.lblEntero.Text = (entero * 2).ToString();
}
private void button3_Click(object sender, EventArgs e)
{
var dbl = this.txtDouble.ToDouble();
this.lblDouble.Text = (dbl * 2).ToString();
}
Pon a prueba el formulario. Verás que si el valor no es correcto obtienes el valor mínimo para el tipo de dato.
Aquí un pequeño ejemplo:
Ponlo a prueba, piensa en cómo mejorarlo y comparte con nosotros tus progresos.