You are on page 1of 22

RESUMEN PROGRAMANDO EN VISUAL C#

1 VARIABLES DE MEMORIA
private void button1_Click(object sender, EventArgs e) { //Crear Variables int Edad; string Nombre; //Asignar valores Edad = 34; Nombre = "Fulanito"; //Mostar variables MessageBox.Show("La edad de: "+Nombre+" es de "+ Edad+" aos"); }

2 OPERACIONES CON VARIABLES NUMRICAS


private void button2_Click(object sender, EventArgs e) { //Crear variables numricas float a, b; //Asignar valores a las variables a = 3; b = 4; //Realizar las 4 operaciones aritmeticas y mostrar resultados MessageBox.Show("La suma de los nmeros " + a + " + " + b + " es de: "+(a+b)); MessageBox.Show("La resta de los nmeros " + a + " - " + b + " es de: " + (a-b)); MessageBox.Show("El producto de los nmeros " + a + " * " + b + " es de: " + (a*b)); MessageBox.Show("La divisin de los nmeros " + a + " / " + b + " es de: " + (a/b));

private void button9_Click(object sender, EventArgs e) { //Uso de potencias y raiz cuadrada int bases = 10; int altura = 15; double raiz = Math.Sqrt(Math.Pow(bases, 2) + Math.Pow(altura, 2));

MessageBox.Show("La raiz es: " + raiz); }

3 MTODOS - Hay que agregar una nueva CLASE, y ponerle el nombre de mtodos.

class Metodos { //Crear metodos publicos public static int sumar(int num1, int num2) { return (num1 + num2); } public static int Multi(int num1, int num2) { return (num1 * num2); }

static public int Resta(int num1, int num2) { int resta; resta = num1 - num2; return (resta); } }

Dentro del formulario en el botn se escribe el siguiente cdigo:


private void button3_Click(object sender, EventArgs e) { //Crear variables numricas int a, b, Respuesta, Producto, Resta; //Asignar valores a las variables a = 3; b = 4; //Llamar nuestros mtodos Respuesta=Metodos.sumar(a, b); Producto = Metodos.Multi(a, b); Resta = Metodos.Resta(a, b); //Mandamos los resultados a lables lblProducto.Text = Producto.ToString(); lblSuma.Text = Respuesta.ToString(); //Mandamos los resultados a textbox txtSuma.Text = Respuesta.ToString(); txtProducto.Text = Producto.ToString();

//Limpiar de manera rpida foreach (Control objetoContoles in this.Controls) { if (objetoContoles is TextBox) { objetoContoles.Text = ""; //Enfoco en el primer TextBox this.tbxNum1.Focus(); } }

//Mostramos el resultado MessageBox.Show("El resultado de la suma es: " + Respuesta); MessageBox.Show("El resultado del producto es: " + Producto); MessageBox.Show("El resultado del producto es: " + Resta); }

4 Ingresar Datos desde el teclado:


private void button5_Click(object sender, EventArgs e) { //Crear variables numricas int a, b, Respuesta, Producto; //Asignar valores a las variables

a = Convert.ToInt32(tbxNum1.Text); b = Convert.ToInt32(tbxNum2.Text); //Llamar nuestros mtodos Respuesta = Metodos.sumar(a, b); Producto = Metodos.Multi(a, b);

//Mostramos el resultado MessageBox.Show("El resultado de la suma es: " + Respuesta); MessageBox.Show("El resultado del producto es: " + Producto);

4.1 LIMPIAR DATOS DE LOS TEXTBOX


private void btnLimpiar_Click(object sender, EventArgs e) { //Limpiar de manera rapida foreach (Control objetoContoles in this.Controls) { if (objetoContoles is TextBox) { objetoContoles.Text = ""; //Enfoco en el primer TextBox, el cursor se pone en el TextBox indicado this.tbxNum1.Focus(); } }

5 Operadores de Adicin Int X=3 X = X + 3 equivale a X += 3 Es lo mismo para la resta, multiplicacin y divisin. X++; Sumamos 1 a la variable X--; Restamos 1 a la variable.

6 Vectores

private void button6_Click(object sender, EventArgs e) { //Declarar Vectores string[] alumnos = new string[3]; //Llenar el vector o lista con Datos alumnos[0] = "Mario"; alumnos[1] = "Fabiola"; alumnos[2] = "Refugio"; //Mostrar el contenido del vector MessageBox.Show("El nombre del alumnos es: " + alumnos[1]); }

7 EJEMPLO IF
private void button7_Click(object sender, EventArgs e) { int num; num = Convert.ToInt32(tbxNum1.Text); if (num == 10) { MessageBox.Show("El numero es 10"); } else { MessageBox.Show("El numero no es 10. incorrecto"); } }

______________________________
private void button7_Click(object sender, EventArgs e) { int num; bool Valor = true; //and //or //Diferente a //Negacin && || != !

num = Convert.ToInt32(tbxNum1.Text); if (num > 10) { MessageBox.Show("El numero es MAYOR A 10"); } else { MessageBox.Show("El numero no es 10 O MENOR"); } }

___________________________________________ private void button7_Click(object sender, EventArgs e) { int num; string nombre="Pedro"; bool Valor = true; //and && //or || //Diferente a //Negacin

!= !

num = Convert.ToInt32(tbxNum1.Text); //if (Valor) //if (nombre=="Pedro" && num == 10) if (num == 10) { MessageBox.Show("El numero es 10"); } else { MessageBox.Show("El numero no es 10. incorrecto"); } }

8 EJEMPLO SWITCH
private void button8_Click(object sender, EventArgs e) { int Op;

Op = Convert.ToInt32(tbxNum1.Text); switch (Op) { case 1: MessageBox.Show("Seleccionaste la Opcin 1"); tbxNum1.Text = ""; break; case 2: MessageBox.Show("Seleccionaste la Opcin 2"); tbxNum1.Text = ""; break; default: MessageBox.Show("Ocin no vlida"); tbxNum1.Text = ""; break; } }

Int X=3 X = X + 3 equivale a X += 3 Es lo mismo para la resta, multiplicacin y divisin. X++; Sumamos 1 a la variable X--; Restamos 1 a la variable.

9 Ciclos While, Do-While, For


private void button10_Click(object sender, EventArgs e) { //uso de while int contador = 1; while (contador <= 3) { MessageBox.Show("El nmero del contador es: "+(contador++)); } }

--------------------------------------------DO-WHILE
private void button10_Click(object sender, EventArgs e) { //uso de while int contador = 1; do { MessageBox.Show("El nmero del contador es: "+(contador++)); } while (contador <= 3); }

--------------------------------------------FOR
private void button10_Click(object sender, EventArgs e) { //uso de while int contador = 1; for (int contador = 0; contador <=3; contador++) { MessageBox.Show("El nmero del contador es: " + contador); } }

ATRAPAR ERRORES try { //Condiciones (como condicionar para ingresar solo letras o nmeros a una variable de tipo string)

num = Convert.ToInt32(txtNum.Text); } catch { MessageBox.Show("Tienes que ingresar un numero entero"); }

10 CLASES Y OBJETOS Creamos una clase y escribimos el sig cdigo


class Alumno { //Atributos private string Nombre; //private que no puedan ser accesados desde fuera de la clase private string Apellido; private int Edad; //Metodo contructor public Alumno(string Nombre, string Apellido, int Edad) //desde fuera podemos asignar parametros { this.Nombre = Nombre; //this se refiere a los atributos de la clase, recibe los parametros y los asigna a los atributos this.Apellido = Apellido; this.Edad = Edad;

} //Metodos para realizar dos tipos de operaciones como cambiar los valores de los atributos y obtenerlos // Mtodo Get (permite obtener informacin de los atributos de nuestra clase. public string ComentarNombre() //Podemos saber desde fuera el valor de este atributo ya que es public { return this.Nombre; } public string ComentarApellido() { return this.Apellido; } public int ComentarEdad() { return this.Edad; }

//Mtodos SET para modificar la informacin, los atributos de la clase public void CambiarNombre(string Nombre) //con el void indicamos que no devolvemos nada { this.Nombre = Nombre; } public void CambiarApellido(string Apellido) { this.Apellido = Apellido; } public void CambiarEdad(int Edad) { this.Edad = Edad; } }

---Dentro del evento clik botn mostrar


private void cmbMostrar_Click(object sender, EventArgs e) { //Instanciar el objeto Alumno (creamos el objeto) Alumno Alumno_Fulanito = new Alumno("Yomero", "Gomez", 34); //Muestra los datos del objeto Alumno_Fulanito MessageBox.Show("Datos del alumno" + "\n Nombre: " + Alumno_Fulanito.ComentarNombre() + "\n Apellido: " + Alumno_Fulanito.ComentarApellido() + "\n Edad: " + Alumno_Fulanito.ComentarEdad()); }

private void cmbCambiar_Click(object sender, EventArgs e) { Alumno Alumno_Fulanito = new Alumno("Yomero", "Gomez", 34); Alumno_Fulanito.CambiarNombre(txtNombre.Text); Alumno_Fulanito.CambiarApellido(txtApellido.Text); Alumno_Fulanito.CambiarEdad(Convert.ToInt16(txtEdad.Text)); //Muestra los datos del objeto Alumno_Fulanito MessageBox.Show("Datos del alumno" + "\n Nombre: " + Alumno_Fulanito.ComentarNombre() + "\n Apellido: " + Alumno_Fulanito.ComentarApellido() + "\n Edad: " + Alumno_Fulanito.ComentarEdad()); }

VALIDACIN Dar de alta la librera: using System.Windows.Forms; Para mandar mensaje al usuario de lo que se permite introducir private void txtClave_KeyPress(object sender, KeyPressEventArgs e) { if (!(char.IsLetter(e.KeyChar)) && (e.KeyChar != (char)Keys.Back)) { MessageBox.Show("Solo se permiten letras sin espacios", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); e.Handled = true; return; } } Para que se bloquee las teclas que no son necesarias y solo puedan introducir ya sea letras o nmeros. Agregar una nueva clase Validacin class Validacion { public void SoloLetras(KeyPressEventArgs e) { char Letras; Letras = e.KeyChar; //Para obligar a que slo se introduzcan letras if (Char.IsLetter(Letras)) { e.Handled = false; }

else if (char.IsControl(Letras)) //permitir teclas de control como retroceso { e.Handled = false; } else if (Char.IsSeparator(e.KeyChar)) //permitir espacios { e.Handled = false; } else { //el resto de teclas pulsadas se desactivan e.Handled = true; } } public void SoloNumeros(KeyPressEventArgs e) { char Numeros; Numeros = e.KeyChar;

if (Char.IsDigit(Numeros)) { e.Handled = false; } else if (char.IsControl(Numeros)) { e.Handled = false; } else { e.Handled = true; } } }

Y dentro del formulario en el Evento KEYPRESS del textbox a tratar


private void txtApellidos_KeyPress(object sender, KeyPressEventArgs e) { V1.SoloLetras(e); } private void txtEdad_KeyPress(object sender, KeyPressEventArgs e) { V1.SoloNumeros(e); }

11. HERENCIA Creamos una clase Padre


class Animales { //Atributos public string IdAnimal; public string Nombre; public string Color; public int Edad; //Mtodo contructor (para poder accesar a los atributos y modificarlos) public Animales(string IdAnimal, string Nombre, string Color, int Edad) { this.IdAnimal = IdAnimal; this.Nombre = Nombre; this.Color = Color; this.Edad = Edad; }

/*Apartir de aqu, colocamos todos lod Metodos para realizar * dos tipos de operaciones como modificar y/o ingresar * los valores de los atributos y obtenerlos para mostrarlos*/ //Mtodos Get public string ObtenerIdAnimal() { return this.IdAnimal; } public string ObtenerNombre() { return this.Nombre; } public string ObtenerColor() { return this.Color; } public int ObtenerEdad() { return this.Edad; } //Mtodos Set, para ingresar o modificar los valores de los atributos public void ModificarIdAnimal(string IdAnimal) { this.IdAnimal = IdAnimal; } public void ModificarNombre(string Nombre) { this.Nombre = Nombre; } public void ModificarColor(string Color) { this.Color = Color; }

public void ModificarEdad(int Edad) { this.Edad = Edad; }

/*Declaramos los mtodos y funciones(lo que realizan) Acciones comunes de los animales*/ public void Comer() { MessageBox.Show("El anumal est cominedo"); } public void Dormir() { MessageBox.Show("El anumal est durminedo"); } public void Aparear() { MessageBox.Show("El animal est apareando"); } } Creamos la clase hija: class Peces : Animales /*Le indicamos que la clase Peces va a heredar * los atributos y mtodos de la clase padre(Animales)*/ { /*Puedes usar el cdigo que se genera con "propfull" y tabulador * para automatizar la declaracin de mtodo contructor y metodos Get y Set*/ //Declaramos los atributos propios de la clase hijo private string tipo_aguas; //Mtodo contructor /*En el contructor de la clase hija, debemos integrar todos los atributos * que va a heredar y los propios de su clase*/ public Peces(string IdAnimal, string Nombre, string Color, int Edad, string tipo_aguas) :base(IdAnimal, Nombre, Color, Edad) //en esta seccin se debe de inidcar con la instruccin (base:)Los atributos que heredamos { /*Solo generamos el cdigo de los atributos propios de la clase hijo * ya que no es necesario vovler a contruir los atributos de la clase padre*/ this.tipo_aguas = tipo_aguas; } //Declaramos el mtodo(s) get public string ObtenerTipo_aguas() { return this.tipo_aguas; }

//Declaramos el mtodo set(s) public void ModificarTipo_aguas(string tipo_aguas) { this.tipo_aguas = tipo_aguas; }

//Declaramos los mtodos y funciones propios de la clase hija (lo que hacen los peces) public void Nadar() { MessageBox.Show("El pez est nadando"); }

} En la vista diseo, puede quedar de la siguiente forma:

Cdigo para el Form1:


public partial class Form1 : Form { Animales Tipo_Animal = new Animales("", "", "", 0); //Este es un objeto generado desde la clase padre, con sus atributos y funciones Peces Tipo_Pez = new Peces("","","",0,""); //Este es un objeto creado apartir de la clase hija que hereda los atributos y funciones d ela clase padres

public Form1() {

InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } //Realizamos la intruccin de guardar desde la clase padre Animales private void cmbGuardar_Click(object sender, EventArgs e) { /*El objeto tipo_Animal de la clase padre (Animales), * accede a sus atributos declaradas en esta clase*/ Tipo_Animal.ModificarIdAnimal(txtIdAnimal.Text); Tipo_Animal.ModificarNombre(txtNombre.Text); Tipo_Animal.ModificarColor(txtColor.Text); Tipo_Animal.ModificarEdad(Convert.ToInt16(txtEdad.Text)); MessageBox.Show("Los datos fueron guardados"); }

//Mostramos todos los atributos de la clase padre private void cmbMostrar_Click(object sender, EventArgs e) { MessageBox.Show("Los datos del animal clase padre son: " // El objeto Tipo_Animal de la clase Padre(Animales) accede a sus atributos + "\n Clave: " + Tipo_Animal.ObtenerIdAnimal() + "\n Nombre: " + Tipo_Animal.ObtenerNombre() + "\n Color: " + Tipo_Animal.ObtenerColor() + "\n Edad: " + Tipo_Animal.ObtenerEdad()); } private void cmbComer_Click(object sender, EventArgs e) { /* El objeto Tipo_Animal de la clase Padre(Animales) * accede a su funcin (Comer) declarada en esta clase*/ Tipo_Animal.Comer(); } private void cmbDormir_Click(object sender, EventArgs e) { /* El objeto Tipo_Animal de la clase Padre(Animales) * accede a su funcin (Dormir) declarada en esta clase*/ Tipo_Animal.Dormir(); } private void cmbAparear_Click(object sender, EventArgs e) { /* El objeto Tipo_Animal de la clase Padre(Animales) * accede a su funcin (Aparear) declarada en esta clase*/ Tipo_Animal.Aparear(); }

//Realizamos la intruccin de guardar desde la clase hija (Peces) private void cmbGuardarPez_Click(object sender, EventArgs e) { /*El objeto tipo_Pez de la clase hija (Peces), * puede acceder a los atributos declarados en la clase Padre (Animales)*/ Tipo_Pez.ModificarIdAnimal(txtIdAnimal.Text); Tipo_Pez.ModificarNombre(txtNombre.Text); Tipo_Pez.ModificarColor(txtColor.Text); Tipo_Pez.ModificarEdad(Convert.ToInt16(txtEdad.Text)); /*El objeto tipo_Pez de la clase hija (Peces), * puede acceder sus porpios atributos delcarados en la clase (Peces)*/ Tipo_Pez.ModificarTipo_aguas(txtTipo_agua.Text); MessageBox.Show("Los datos del pez se guradaron correctamente"); } private void cmbMostrarPez_Click(object sender, EventArgs e) { //Mostramos todos los atributos de la clase padre MessageBox.Show("Los datos del animal clase padre son: " + "\n Clave: " + Tipo_Pez.ObtenerIdAnimal() + "\n Nombre: " + Tipo_Pez.ObtenerNombre() + "\n Color: " + Tipo_Pez.ObtenerColor() + "\n Edad: " + Tipo_Pez.ObtenerEdad() //Mostramos loas atributos de la clase hijo + "\n Los datos del pez clase hijo son: " + "\n Tipo de Agua: " + Tipo_Pez.ObtenerTipo_aguas());

} private void cmbNadar_Click(object sender, EventArgs e) { //Mandamos llamar al mtodos Nadar propio de la clase hijo(Peces) Tipo_Pez.Nadar(); } private void cmbTodoPez_Click(object sender, EventArgs e) { //Mandamos llamas los mtodos de la clase padre(Animales) Tipo_Pez.Comer(); Tipo_Pez.Dormir(); Tipo_Pez.Aparear(); //Mandamos llamar el mtodo de la clase hijo Tipo_Pez.Nadar(); } }

12 Polimorfismo Creamos una clase con las siguientes caractersticas

using using using using using

System; System.Collections.Generic; System.Linq; System.Text; System.Threading.Tasks;

namespace PolimorfismoEjem1 { class Motocicletas { //Atributos private string Nombre; private string Tipo; private string Marca; private int Modelo; private int CenCub; //Mtodo contructor public Motocicletas(string C_Nombre, string C_Tipo, string C_Marca, int C_Modelo, int C_CenCub) { this.Nombre = C_Nombre; this.Tipo = C_Tipo; this.Marca = C_Marca; this.Modelo = C_Modelo; this.CenCub = C_CenCub; } //Mtodo contructor default public Motocicletas() { this.Nombre = ""; this.Tipo = ""; this.Marca = ""; this.Modelo = 0; this.CenCub = 0; } //Mtodos GET public string MostrarNombre() { return this.Nombre; } public string MostrarTipo() { return this.Tipo; } public string MostrarMarca() { return this.Marca; } public int MostrarModelo() { return this.Modelo; } public int MostrarCenCub() { return this.CenCub;

} //Mtodos Set public void GuardarNombre(string M_Nombre) { this.Nombre = M_Nombre; } public void GuardarTipo(string M_Tipo) { this.Tipo = M_Tipo; } public void GuardarMarca(string M_Marca) { this.Marca = M_Marca; } public void GuardarModelo(int M_Modelo) { this.Modelo = M_Modelo; } public void GuardarCenCub(int M_CenCub) { this.CenCub = M_CenCub; } } }

Creamos un formulario con estas caractersticas

Dentro del cdigo del formulario escribimos


namespace PolimorfismoEjem1

{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void label3_Click(object sender, EventArgs e) { } private void cmbGuardar_Click(object sender, EventArgs e) {

Validaciones V1 = new Validaciones(); //codigo para validar que todos los textbox estn llenos V1.validad(this);

//Creamos el objeto del cual va a usar el costructor con parmetros Motocicletas MyMoto1 = new Motocicletas(txtNombre.Text, txtTipo.Text, txtMarca.Text, Convert.ToInt32(txtModelo.Text), Convert.ToInt32(txtCenCub.Text)); MessageBox.Show("La motocicleta CON parmetros: " + "\n Nombre: " + MyMoto1.MostrarNombre() + "\n Tipo: " + MyMoto1.MostrarTipo() + "\n Marca: " + MyMoto1.MostrarMarca() + "\n Modelo: " + MyMoto1.MostrarModelo() + "\n Centmetros Cbicos: " + MyMoto1.MostrarCenCub()); //Creamos el objeto del cual va a a usar el costructor SIN parmetros Motocicletas MyMoto2 = new Motocicletas(); MessageBox.Show("La motocicleta SIN parmetros: " + "\n Nombre: " + MyMoto2.MostrarNombre() + "\n Tipo: " + MyMoto2.MostrarTipo() + "\n Marca: " + MyMoto2.MostrarMarca() + "\n Modelo: " + MyMoto2.MostrarModelo() + "\n Centmetros Cbicos: " + MyMoto2.MostrarCenCub()); /*Al usar el constructor con un objeto y con parmetros, y tamben usarlo sin parmetros, * es mandar llamar al mismo mtodo pero de distina forma (POLIMORFISMO), al utilizar este mtodo * con parmetros diferentes, estamos usando la sobrecarga del mtodo, * En especfico esta es un plimorfismo paramtrico, ya que indicamos en un objeto mostramos * las variables que obtenemos de los textbox y en el otro mostramos las variafles por DEFAULT * que se codificaron el el mtodo contructor por default*/ } } } Cdigo para validaciones

class Validaciones { //Declaramos una variable de control para revisar si hay un textbox vacio public bool vacio; public void validad(Form1 formulario) { foreach (Control oControls in formulario.Controls) //Buscar en cada textbox de mi formulario { if (oControls is TextBox && oControls.Text == string.Empty)//Revisamos que el textboox no este vacio { vacio = true;//Si esta vacio alguno de nuestros textbox asignamos el valor true a nuestra variable } } if (vacio == true) //Si nuestra variable vacio esta en true, mostramos un mensaje de advertencia MessageBox.Show("Hay campos sin llenar, favor de ingresar todos los datos","Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); vacio = false; //Devovemos el valor original a nuestra variable

} }

POLIMORFISMO CON SOBRE ESCRITURA

Ejemplo 2: Este ejemplo define una clase base denominada Employee y una clase derivada denominada SalesEmployee. La clase SalesEmployee incluye una propiedad adicional, salesbonus, e invalida el mtodo CalculatePay para tenerlo en cuenta.

class TestOverride { public class Employee { public string name; // Basepay is defined as protected, so that it may be // accessed only by this class and derrived classes. protected decimal basepay; // Constructor to set the name and basepay values. public Employee(string name, decimal basepay) { this.name = name; this.basepay = basepay; }

// Declared virtual so it can be overridden. public virtual decimal CalculatePay() { return basepay; } } // Derive a new class from Employee. public class SalesEmployee : Employee { // New field that will affect the base pay. private decimal salesbonus; // The constructor calls the base-class version, and // initializes the salesbonus field. public SalesEmployee(string name, decimal basepay, decimal salesbonus) : base(name, basepay) { this.salesbonus = salesbonus; } // Override the CalculatePay method // to take bonus into account. public override decimal CalculatePay() { return basepay + salesbonus; } } static void Main() { // Create some new employees. SalesEmployee employee1 = new SalesEmployee("Alice", 1000, 500); Employee employee2 = new Employee("Bob", 1200); Console.WriteLine("Employee4 " + employee1.name + " earned: " + employee1.CalculatePay()); Console.WriteLine("Employee4 " + employee2.name + " earned: " + employee2.CalculatePay()); } } /* Output: Employee4 Alice earned: 1500 Employee4 Bob earned: 1200 */

13. Excepciones

14. Flujos y archivos

You might also like