Buenas noches gentes del buen saber:
Estoy buscando el error en este codigo:
class PruebaLibro
{
static void Main()
{
int opcion, paginas;
int x = 0;
string autor, titulo, ubica, procedencia;
Documento[] Documentos = new Documento[1000];
do
{
Console.WriteLine("MENU");
Console.WriteLine("------------");
Console.WriteLine("1.-Añadir un documento a la biblioteca");
Console.WriteLine("2.-Ver los datos ya guardados");
Console.WriteLine("3.- Salir");
opcion = Convert.ToInt32(Console.ReadLine());
switch (opcion)
{
case 1:
if (x < Documentos.Length)
{
Console.WriteLine("Que tipo de documento quieres guardar?");
Console.WriteLine("1.- Libro.");
Console.WriteLine("2.- Articulo.");
Console.WriteLine();
int op;
op = Convert.ToInt32(Console.ReadLine());
switch (op)
{
case 1:
Console.WriteLine("Introduce el titulo: ");
titulo = Console.ReadLine();
Console.WriteLine("Introduce el autor: ");
autor = Console.ReadLine();
Console.WriteLine("Introduce su ubicacion: ");
ubica = Console.ReadLine();
Console.WriteLine("Introduce nº de paginas");
paginas = Convert.ToInt32(Console.ReadLine());
Documentos[x] = new Libro();
Documentos[x].SetAutor(autor);
Documentos[x].SetTitulo(titulo);
Documentos[x].SetUbicacion(ubica);
Documentos[x].SetPaginas(paginas);
x++;
break;
case 2:
Console.WriteLine("Introduce el autor: ");
autor = Console.ReadLine();
Console.WriteLine("Introduce el titulo articulo: ");
titulo = Console.ReadLine();
Console.WriteLine("Introduce ubicacion: ");
ubica = Console.ReadLine();
Console.WriteLine("Introduce la procedencia");
procedencia = Console.ReadLine();
Documentos[x] = new Articulo();
Documentos[x].SetAutor(autor);
Documentos[x].SetTitulo(titulo);
Documentos[x].SetUbicacion(ubica);
Documentos[x].SetProcedencia(procedencia);
x++;
break;
default:
Console.WriteLine("No se reconoce opcion");
break;
}
}
else
{
Console.WriteLine("No se pueden añadir mas libros o articulos");
}
break;
case 2:
foreach(Documento documento in Documentos)
{
documento.MuestraDatos();
}
break;
case 3:
Console.WriteLine("Saliendo");
break;
default:
Console.WriteLine("No se reconoce tecla");
break;
}
} while (opcion != 3);
}
}
El error reside en la zona del foreach que dice que no he instanciado la clase en cuestion, pero si que creo la instancia en cada pasada del do-while, alguien podria darme alguna idea de donde estoy metiendo la pata.
Un fuerte y caluroso saludo desde Murcia Isra
EDITO 1-- CLASE DOCUMENTO
public class Documento
{
protected string autor;
protected string titulo;
protected string ubicacion;
protected string procedencia;
protected int paginas;
public Documento()
{
}
public override string ToString()
{
return titulo + "-" + autor + "-" + ubicacion;
}
public void SetAutor(string nombreAutor)
{
autor = nombreAutor;
}
public void SetTitulo(string nombreLibro)
{
titulo = nombreLibro;
}
public void SetUbicacion(string donde)
{
ubicacion = donde;
}
public virtual void SetPaginas(int pag)
{
paginas = pag;
}
public virtual void SetProcedencia(string procede)
{
procedencia = procede;
}
public string GetAutor()
{
return autor;
}
public string GetTitulo()
{
return titulo;
}
public string GetUbicacion()
{
return ubicacion;
}
public virtual int GetPaginas()
{
return paginas;
}
public string GetProcedencia()
{
return procedencia;
}
public virtual void MuestraDatos()
{
Console.WriteLine("----------------------");
Console.WriteLine("{0}", ToString());
}
}