//Método utilizado para la creación de nuevos trabajadores public static void NuevoTrabajador(ref Trabajador[] listaTrabajadores, int mode) { Trabajador trabtemp; Trabajador[] copia = null; bool salida = false; //Inicialización de variables string mensaje = null; string mensaje2 = null; bool existe = false; // Entrada de Datos do { // ENTRADA trabtemp = Interfaz.PlantillaCrearTrabajador(); existe = ExisteTrabajador(listaTrabajadores, trabtemp.dni_pre); //Comprueba si existe o no el trabajador if (listaTrabajadores == null) //Si la lista de trabajadores está vacía, le asigna una posición { listaTrabajadores = new Trabajador[1]; } if (listaTrabajadores != null) //Como no es nula, debido a la anterior creación de la posición { if (existe == false) { //Gestión dinámica de la memoria copia = new Trabajador[listaTrabajadores.Length]; //Copiamos el tamaño del array de trabajadores listaTrabajadores.CopyTo(copia, 0); //Volcamos el contenido del array de trabajadores en copia listaTrabajadores = new Trabajador[listaTrabajadores.Length + 1]; //Asignamos una posición más copia.CopyTo(listaTrabajadores, 0); //Copiamos todo de nuevo al array de trabajadores copia = null; //Volvemos copia a null para ahorrar memoria listaTrabajadores[listaTrabajadores.Length - 1] = trabtemp; //Asignamos el nuevo trabajador al array mensaje = "Trabajador registrado correctamente"; if (mode == 1)// Modo 1: Creamos empleados por NuevoTrabajadors { mensaje2 = "Desea registrar otro Trabajador (s/n): "; salida = Interfaz.Continuar(mensaje); Interfaz.Pregunta(ref mensaje2, ref salida); Ficheros.GuardarTrabajadores(listaTrabajadores); } else //Creamos empleados desde la nómina. { salida = true; } } else //Si existe el trabajador, asignamos que salga del bucle { salida = true; } } } while (!salida); }