Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C#: Geneerinen readonly dictionary (.net 2)

Ukkoslapsi [12.04.2006 10:47:26]

#

Hei!

Osaako joku kertoa miten .net:llä (versio 2) saa tehtyä geneerisen readonly dictionaryn eli sellaisen dictionaryn jonka avaimen ja arvon tyypin voi määrittää deklaraatiossa, mutta jota ei voi alustuksen jälkeen muuttaa? (l. Add, Remove ja muiden objektia muuttavien metodien tulisi heittää exception).

Listalle tämä onnistuu List.AsReadOnly() metodilla, mutta Dictionarylle ei ole käsittääkseni olemassa vastaavaa metodia.

Koitin periyttää Dictionary -luokkaa omaksi luokakseni, jossa yliajoin IsReadOnly-propertyn aina trueksi, mutta dictionaryn muuttaminen koodissa onnistui silti ilman ajonaikaista virhettä.

~UL

panttu [12.04.2006 23:08:52]

#

Tee abstracti luokka
Jossa privatena tuo dictionary-olio
ja tiedot syötetään rakentajassa
tämän jälkeen periytät tuon abstractin luokan, jolloin
directory olio on piilossa.

Ukkoslapsi [13.04.2006 14:47:56]

#

Tuon dictionaryn arvoja pitää pystyä lukemaan, mutta ei muuttamaan joten pelkästään tuo piilotus privaten avulla ei taida auttaa tässä tapauksessa...

~UL

panttu [13.04.2006 18:45:40]

#

juu ei suoraan joutunee jokaista lukutapaa vastaavan metodin kirjoittamaan tuohon abstractiin luokkaan tai sitten tehdä ominaisuus joka palauttaa dictionarystä cloonin, silloin ei cloonin muuttaminen vaikuta alkuperäiseen mitenkään.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta