Avatar billede davidfossil Nybegynder
05. marts 2005 - 10:56 Der er 6 kommentarer og
1 løsning

Readonly collection el. arraylist

Jeg har en klasse der extender CollectionBase, som jeg gerne vil kunne gøre readonly. Altså hvis klassens instansieres gennem en bestemt constructor, skal dens InnerList (arraylist) være låst for ændringer.

Hvordan?
Avatar billede arne_v Ekspert
05. marts 2005 - 11:02 #1
Hvis:
  - klassen har et field readonly
  - constructorerne sætter det til true eller false
  - du overrider alle metoder som ændrer indholdet
  - de metoder checker readonly
Avatar billede davidfossil Nybegynder
05. marts 2005 - 11:19 #2
Hmm, den kan jeg godt følge, men findes der ikke nogen "one-line" løsning indbygget i ArrayList el. lign.?
Avatar billede arne_v Ekspert
05. marts 2005 - 11:28 #3
Det .NET tilbyder er:

ArrayList readonlylist = ArrayList.ReadOnly(normalarraylist);

men det er jo noget lidt andet.
Avatar billede arne_v Ekspert
05. marts 2005 - 11:31 #4
Iøvrigt en interessant diskssion her:
  http://blogs.msdn.com/brada/archive/2004/02/04/67859.aspx
Avatar billede jepsen999 Nybegynder
05. marts 2005 - 12:40 #5
Når man nedarver fra collectionbase vil man iøvrigt altid kunne tilgå (og tilføje i) innerlist ved at caste til IList, uanset de restriktioner man kan have lagt i sin egen Add-metode.

Så hvis du vil være helt sikker på at den bliver readonly tror jeg du skal lave din egen collection (ikke bruge collectionbase).
Avatar billede davidfossil Nybegynder
08. marts 2005 - 11:43 #6
Ok, tak for hjælpen.
Smid lige svar begge to...
Avatar billede arne_v Ekspert
08. marts 2005 - 11:53 #7
ok
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