problema en c# exepcion bucle for

Iniciado por ismaelson, 13 Febrero 2021, 17:07 PM

0 Miembros y 1 Visitante están viendo este tema.

ismaelson

buenas estoy aprendiendo a programar en c# aun soy bastante novato en esto y la cosa es que  tengo un problema que no se solucionar a ver si me pueden echar una mano porque por mas que intento cosas que se me van ocurriendo no consigo solucionarlo dejo el codigo para que puedan verlo y de bajo de el comento lo que intento hacer.

using System;

namespace EjercicioPracticotema2
{
   public class Program
   {

       ToDoList[] semana = new ToDoList[7];
       
       


       static void Main(string[] args)
       {
           ToDoList s = new ToDoList();
           s.SetValue("prueba", 0);

           

       }


   }

   class ToDoList : ILibre
   {
       public enum Dia { Lunes, Martes, Miercoles, Jueves, Viernes, Sabado, Domingo }

       public ToDoList[] dias = new ToDoList[7];
       public Dia diax = Dia.Lunes;
       int i;
       public string[] tareas;



       public bool diaLibre { get; set; }

       public void SetValue(string tareasstring, int xindex)
       {
           Program q = new Program();
           ToDoList p = new ToDoList();
           
           tareas[xindex] = tareasstring;
           
           for( i=0; i< dias.Length; i++ )
           {
               
               dias = new ToDoList();

               while (!diaLibre)
               {
                   string s = Console.ReadLine();
                   if (s == "True")
                   {


                       diaLibre = true;
                       break;

                   }
                   else if (s == "False")
                   {
                       if (diaLibre == false)
                       {
                           Console.WriteLine("escribe la cantidad de tareas: ");


                       }


                   }
                   else
                   {
                       Console.WriteLine(" escribe 'True' para decir si es fiesta y si no es fiesta escribe 'False' ");
                   }

                   break;

               }





           }
           
       }

   }
   interface ILibre
   {
       public bool diaLibre { get; set; }

   }
}

lo que que intento hacer es los siguiente:

Una enumeración "Dia" con los días de la semana.
 Una interfaz "ILibre" con una propiedad bool llamada diaLibre.

 Una clase llamada "ToDoList" que herede de la interfaz "ILibre" y que
contenga una variable de la enumeración "Dia", también contendrá
una matriz de string llamada tareas, y una función con parámetros para darle valor al elemento de la matriz (Pista:
array.SetValue(string, int)).

El funcionamiento será el siguiente:

 En el programa principal tendremos una variable array de ToDoList de
un tamaño de 7.

 En la ejecución del programa además de instanciar los objetos que necesitemos, le damos el tamaño a la semana y mediante un bucle recorreremos cada día preguntando si es fiesta, y si no es fiesta preguntaremos por las tareas.

 En el bucle for recorremos cada día, obtenemos el día de la enumeración en base al día del indexado del for y si es fiesta continuamos el bucle, si se ha equivocado retornamos para que lo vuelva a introducir.

 Si no es fiesta entramos en un bucle while, preguntaremos cuantas tareas tiene que realizar para darle el tamaño a la matriz, si el valor no es
válido volvemos a empezar el bucle

 Para introducir las tareas tendremos que tener un bucle for que recorra la matriz creada y le asigne valores a cada posición (tareas).

 Cuando termine de recorrer las tareas le preguntamos si está conforme con el día, si lo está pasaremos al siguiente día, hasta que estén todos completados.

 Al final mostraremos un resumen de la semana.

entonce mi problema es que cuando intento arrancar la consola me tira exepcion en:

for( i=0; i< dias.Length; i++ )

y claro entonces no puedo ver lo que ocurre cuando arranco la consola ya que no se si esa es la forma correcta de hacer preguntas en el bucle o no porque igual while"esta incompleto" y todo lo que esta dentro de el esta mal y quizas asi no se formulan las preguntas en el bucle for pero claro como me tira exepcion no puedo ir comprobando lo que ocurre. a ver si alguien podria decirme porque ocurre esa exepcion y a si aprender de este error para evitar que me vuelva a ocurrir. muchas gracias. un saludo
       
   



Serapis

La excepción fijo que te sale en la línea anterior 'tareas[xindex] = tareasstring;', te debe marcar una referencia nula al array, ya que no está inicializado...
Además como parece recibir una asignación pero luego no aparece más en todo el código se puede comentar (quizás es que esté sin terminar el código, pero igualmente puedes comentar dicha línea hasta entonces).

Hay más errores (de todo tipo), pero ya los irás viendo y a ver si puedes resolverlos solo...

ismaelson

muchas gracias era eso en el momento que lo e comentado con // tareas[xindex] = tareasstring;  se soluciono el problema de la exepcion, mil gracias de veras porque llevo todo el finde intentando cambiar cosas  y no lo conseguia, se que hay otros errores como por ejemplo los break en los if() y alguna cosilla mas  pero eso los puse para ir probando cosillas y ver que va ocurriendo, pero eso si mil gracias de verdad  ;-)

un saludo!