Este es un ejemplo sencillo de como crear funciones en C#, utilizando un sencilla calculadora con 2 cuadros de texto, cada uno para un operando, 1 cuadro de texto para el resultado y 4 botones para los operadores suma, resta, multiplicación y división.
Así mismo, se muestra el uso de los Try-Catchs para evitar errores como la inserción de caracteres inválidos u operaciones con valores nulos.
Este ejemplo esta dirigido a principiantes en esto de la programación.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace Funciones
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void bt_suma_Click(object sender, EventArgs e)
{
//Utilizamos un Try-Catch para evitar errores, por ejemplo, que se deje vacia una caja de texto o se ingresen caracteres incorrectos
try
{
//Declaramos una variable que almacenara el resultado que regrese de la funcion llamada "suma"
//Si no enviamos ningun parametro, entonces solo se colocan los parentesis vacios
string res = suma();
//La funcion "suma" evalua y devuelve un resultado que es almacenado en la cadena "res"
txt_res.Text = res;
//Y "res" es asignada a la propiedad Texto de la caja de texto llamada "txt_res", presentando el resultado
}
catch
{
//Si existe error, se mostrara un mensaje y no se cerrara la aplicacion
MessageBox.Show("Por favor, ingrese correctamente los valores a evaluar","Error en Tiempo de Ejecución",MessageBoxButtons.OK, MessageBoxIcon.Error,MessageBoxDefaultButton.Button1);
//Limpiamos las cajas de texto con el metodo clear
txt_1.Clear();
txt_2.Clear();
txt_res.Clear();
}
}
private void bt_resta_Click(object sender, EventArgs e)
{
//Utilizamos un Try-Catch para evitar errores, por ejemplo, que se deje vacia una caja de texto o se ingresen caracteres incorrectos
try
{
//Declaramos una variable que almacenara el resultado que regrese de la funcion llamada "resta"
//Si no enviamos ningun parametro, entonces solo se colocan los parentesis vacios
string res = resta();
//La funcion "resta" evalua y devuelve un resultado que es almacenado en la cadena "res"
txt_res.Text = res;
//Y "res" es asignada a la propiedad Texto de la caja de texto llamada "txt_res", presentando el resultado
}
catch
{
//Si existe error, se mostrara un mensaje y no se cerrara la aplicacion
MessageBox.Show("Por favor, ingrese correctamente los valores a evaluar", "Error en Tiempo de Ejecución", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
//Limpiamos las cajas de texto con el metodo clear
txt_1.Clear();
txt_2.Clear();
txt_res.Clear();
}
}
private void bt_multi_Click(object sender, EventArgs e)
{
//Utilizamos un Try-Catch para evitar errores, por ejemplo, que se deje vacia una caja de texto o se ingresen caracteres incorrectos
try
{
//Declaramos una variable que almacenara el resultado que regrese de la funcion llamada "multi"
//Si no enviamos ningun parametro, entonces solo se colocan los parentesis vacios
string res = multi();
//La funcion "multi" evalua y devuelve un resultado que es almacenado en la cadena "res"
txt_res.Text = res;
//Y "res" es asignada a la propiedad Texto de la caja de texto llamada "txt_res", presentando el resultado
}
catch
{
//Si existe error, se mostrara un mensaje y no se cerrara la aplicacion
MessageBox.Show("Por favor, ingrese correctamente los valores a evaluar", "Error en Tiempo de Ejecución", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
//Limpiamos las cajas de texto con el metodo clear
txt_1.Clear();
txt_2.Clear();
txt_res.Clear();
}
}
private void bt_div_Click(object sender, EventArgs e)
{
//Utilizamos un Try-Catch para evitar errores, por ejemplo, que se deje vacia una caja de texto o se ingresen caracteres incorrectos
try
{
//Declaramos una variable que almacenara el resultado que regrese de la funcion llamada "div"
//Si no enviamos ningun parametro, entonces solo se colocan los parentesis vacios
string res = div();
//La funcion "div" evalua y devuelve un resultado que es almacenado en la cadena "res"
txt_res.Text = res;
//Y "res" es asignada a la propiedad Texto de la caja de texto llamada "txt_res", presentando el resultado
}
catch
{
//Si existe error, se mostrara un mensaje y no se cerrara la aplicacion
MessageBox.Show("Por favor, ingrese correctamente los valores a evaluar", "Error en Tiempo de Ejecución", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
//Limpiamos las cajas de texto con el metodo clear
txt_1.Clear();
txt_2.Clear();
txt_res.Clear();
}
}
string suma()
//Funcion "suma"`para sumar dos valores
{
//Se declaran dos variables tipo double, "no_1" y "no_2" cuyos valores seran asignados de los valores
//que el usuario ingrese en las cajas de texto. Al asignarlos, los convertimos a tipo double mediante Convert.ToDouble()
double no_1 = Convert.ToDouble(txt_1.Text);
double no_2 = Convert.ToDouble(txt_2.Text);
//Retornamos a donde fue llamada la funcion, la suma de "no_1" y "no_2"
//Se le concatena un espacio en blanco para que el valor sea enviado en formato de cadena, ya que la variable que almacenara
//el resultado ("res") es de tipo Cadena
return (no_1 + no_2)+ "";
}
string resta()
//Funcion "resta"`para sumar dos valores
{
//Se declaran dos variables tipo double, "no_1" y "no_2" cuyos valores seran asignados de los valores
//que el usuario ingrese en las cajas de texto. Al asignarlos, los convertimos a tipo double mediante Convert.ToDouble()
double no_1 = Convert.ToDouble(txt_1.Text);
double no_2 = Convert.ToDouble(txt_2.Text);
//Retornamos a donde fue llamada la funcion, la resta de "no_1" y "no_2"
//Se le concatena un espacio en blanco para que el valor sea enviado en formato de cadena, ya que la variable que almacenara
//el resultado ("res") es de tipo Cadena
return (no_1 - no_2) + "";
}
string multi()
//Funcion "multi"`para sumar dos valores
{
//Se declaran dos variables tipo double, "no_1" y "no_2" cuyos valores seran asignados de los valores
//que el usuario ingrese en las cajas de texto. Al asignarlos, los convertimos a tipo double mediante Convert.ToDouble()
double no_1 = Convert.ToDouble(txt_1.Text);
double no_2 = Convert.ToDouble(txt_2.Text);
//Retornamos a donde fue llamada la funcion, la multiplicacion de "no_1" y "no_2"
//Se le concatena un espacio en blanco para que el valor sea enviado en formato de cadena, ya que la variable que almacenara
//el resultado ("res") es de tipo Cadena
return (no_1 * no_2) + "";
}
string div()
//Funcion "div"`para sumar dos valores
{
//Se declaran dos variables tipo double, "no_1" y "no_2" cuyos valores seran asignados de los valores
//que el usuario ingrese en las cajas de texto. Al asignarlos, los convertimos a tipo double mediante Convert.ToDouble()
double no_1 = Convert.ToDouble(txt_1.Text);
double no_2 = Convert.ToDouble(txt_2.Text);
//Retornamos a donde fue llamada la funcion, la division de "no_1" y "no_2"
//Se le concatena un espacio en blanco para que el valor sea enviado en formato de cadena, ya que la variable que almacenara
//el resultado ("res") es de tipo Cadena
return (no_1 / no_2) + "";
}
}
}
2 comentarios:
Excelente ejemplo, solo una pequenia observacion, las funciones sume, resta, multiplicacion y division puedes hacerlas mas genericas,como?
Las funciones no reciben parametros en su lugar tomas los valores de los text dentro de las funciones, esto te ahorrara mucho codigo mas o menos esta seria una funcion
public double Suma(double x, double y)
{
return (x + y);
}
Mas facil no??
Oye Mocito, si puedes publicar algo de Java se te agradeceria, y si es Subversion y JUnit test estaria mejor... Muy buen ejemplo, solo que como recomendacion deberias de cambiar el color de la letra...
Good Luck :)
Publicar un comentario