Arraylist med nedarvede objekter
HejsaJeg har til en skoleopgave lavet nogle classer med nedarvning til nogle andre classer.
Opgaven er en brugerdatabase, hvor hver type af brugere har deres egen klasse med nedarvning fra den generelle bruger klasse.
Dvs. de oplysninger er er unikke for den enkelte bruger er gemt i den nedarvede klasse og de generelle i bruger klassen.
Disse oplysninger skal gemmes i en fil, og her bruger jeg en arraylist til at holde de forskellige objekter i.
Jeg skal have en generel metode i min brugerklasse til at finde en bruger med. Jeg har noget der virker, men det virker lidt omstændigt. Kan nogen hjælpe mig med at simplificere den lidt, så jeg måske opstår en større forståelse for dette.
Koden er således. Der sendes er brugernavn, og detajler fremfindes og returneres i det rette objekt.
Mit problem er, at jeg først opretter en instans af Bruger objektet for så at finde ud af hvad det rette objekt er, før det returneres.
public class Bruger
{
public string Email;
public string KodeOrd;
public bool NyhedsBrev;
public string BrugerType;
public string ForNavn;
public string EfterNavn;
ArrayList al = new ArrayList();
public Bruger FindDetaljer(string BrugerNavn)
{
al = FileController.ReadFile(@"c:\temp\Bruger.bin");
Bruger svar = new Bruger();
foreach (Bruger b in al)
{
if (b.Email == BrugerNavn)
{
if (b is LandMand)
{ return svar = b as LandMand; }
if (b is Fisker)
{ return svar = b as Fisker; }
if (b is Editorer)
{ return svar = b as Editorer; }
if (b is Administratorer)
{ return svar = b as Administratorer; }
}
}
return svar;
}
}