Avatar billede -simit- Nybegynder
02. januar 2008 - 12:47 Der er 4 kommentarer og
1 løsning

kalde et objets, som er i en Arraylist, metode.

Hvis jeg har en ArrayList al
kan jeg så gøre noget for at jeg ikke skal skrive:
((obj)al[0]).method;

men kan nøjes med at skrive:
al[0].method();
Avatar billede nielle Nybegynder
02. januar 2008 - 12:50 #1
> men kan nøjes med at skrive:

Nej, det kan du ikke.

Men hvis du nu ikke bruger ArrayList, men i stedet bruger List<klasse> så er dre måske en mulighed.

List<DinKlasse> al = new List<DinKlasse>();
al.Add(new DinKlass());
al.Add(new DinKlass());
al.Add(new DinKlass());

al[0].method();
Avatar billede -simit- Nybegynder
02. januar 2008 - 12:59 #2
mange tak, hvis du lægger et svar, kan jeg give dig point
Avatar billede nielle Nybegynder
02. januar 2008 - 13:08 #3
Svar :^)
Avatar billede skov_p Praktikant
02. januar 2008 - 21:10 #4
Var det ikke muligt at:

ArrayList al = new ArrayList();

al.Add(new klasse1());
al.Add(new klasse2());

if(al[0] is klasse1)
  (al[0] as klasse1).metode1();

if(al[0] is klasse2)
  (al[0] as klasse2).metode2();

Det er ikke så pænt men til gængæld er det muligt at have forskellige typer i sin liste
Avatar billede nielle Nybegynder
03. januar 2008 - 17:54 #5
Man kan også have flere typer i en List<DinKlasse> - de skal bare arve fra DinKlasse. Man kan med noget god vilje sige at en ArrayList blot er det samme som en List<System.Object>.

En af fordelene ved at vælge List<...> er at man i mange tilfælde slipper for at skulle caste sine objekter frem og tilbage fra System.Object - dels giver det en kønnere syntaks (som her) og dels giver det et gevaldigt boost i performance.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester