Dejo la solución para visual c# 2005 express. Hice algunos cambios, pero no son difíciles de descifrar. Pasamos a discutir el código.
| < código > |
public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { // validamos los campos antes de crear el libro // variable que indicare1 que los datos este1n bien. bool datosBien = true; // validacion 1 - que los campos de texto (nombre y autor) no sean vacios if (textBox1.Text == string.Empty || textBox2.Text == string.Empty) datosBien = false; // existe una forma de corregir el error si el numero no se puede convertir // pero implica el uso de "exceptions" que no las vimos todavia if (int.Parse(textBox3.Text) <= 0) datosBien = false; // si la variable "datosBien" es verdadera, creamos el libro. if (datosBien) // esto es lo mismo que poner if(datosBien == true) { // crea un nuevo libro con los datos Libro libroParaCargar = new Libro(textBox1.Text, textBox2.Text, int.Parse(textBox3.Text)); MessageBox.Show("Libro se creo correctamente."); } else if (!datosBien) // es lo mismo que if(datosBien == false) { MessageBox.Show("Verifique los datos de carga."); } } } |
Lo nuevo es una pequeña comprobación de errores que agregue antes de crear el libro. Esto se puede solucionar de muchas maneras, quizás la mía no es la mas elegante, pero es la más fácil de inferir para entender el ejemplo.
Lo primero fue crear una variable de control del tipo bool. Esta variable esta por defecto en true, y se cambia a false si encuentra algun error en los valores.
La primera comprobación verifica que lo que ingresamos no sean una cadena vacía, para eso usé la comprobación:
| < código > |
if (textBox1.Text == string.Empty || textBox2.Text == string.Empty) |
No hace falta aclarar lo que hace esa comprobación ya que es bastante auto explicativa. El operador || es un OR lógico. Ósea, si ambas cadenas son vacías, cambiamos la variable a falso. La Propiedad Empty de la clase string es la que hace el trabajo ahí.
También se puede ver la utilización de la conversión de string a int. Usamos el metodo Parse de la clase int.
| < código > |
if (int.Parse(textBox3.Text) <= 0) datosBien = false; |
A continuación dejo linkeada la solución: