Avatar billede azzodiac Nybegynder
16. april 2005 - 15:13 Der er 7 kommentarer og
1 løsning

Type casting

Hej.

Jeg har et Hashtable som jeg lægger i Cache objektet:

Cache["data"] = new Hashtable(5);

Senere i koden vil jeg gerne gennemløbe alle nøglerne i Hashtablen:

foreach(string i in Cache["data"].Keys)
{
        Response.Write(i);
}

Men får en compile fejl, da Hashtablen er lagret i Cachen som typen "object". Hvordan type caster jeg objektet tilbage til et Hashtable?

På forhånd tak. :-)
Avatar billede arne_v Ekspert
16. april 2005 - 15:16 #1
Prøv:

foreach(string i in ((Hashtable)Cache["data"]).Keys)
Avatar billede azzodiac Nybegynder
16. april 2005 - 15:40 #2
Hej Arne.

Det var også det jeg troede man skulle gøre, men jeg får en

"System.InvalidCastException: Specified cast is not valid."

Fejlmeddelelse. Kan du hvad hvad jeg gør galt?
Avatar billede arne_v Ekspert
16. april 2005 - 15:52 #3
prøv lige at udskriv:

Cache["data"].GetType.Name

og se hvad pokker den selv tror at den er
Avatar billede webcreator Nybegynder
16. april 2005 - 15:52 #4
Prøv at fange din Exception med en try/catch og få den udskrevet

try
{
  // Koden der giver fejl
}
catch (Exception ex)
{
  MessageBox.Show(ex.ToString());
}

Der er en række properties på ex der giver mulighed for debugging.
Avatar billede webcreator Nybegynder
16. april 2005 - 16:13 #5
Sorry, det er der næppe nogen ide i. Havde ikke lige læst det output du fik af debuggeren ordentligt. Der er mere sandsynligt at dit objekt ikke er af typen Hashtable. Men det finder du ud af med Arnes eksempel.
Avatar billede azzodiac Nybegynder
16. april 2005 - 16:29 #6
Jeg løste det ved at lave et andet Hashtable

hashtable2 = (Hashtable) Cache["data"];

Jeg er klar over at det ikke er optimalt, men det er tilfredsstillende til den sammenhæng det skal bruges i.

I skal have tak for hjælpen.
Avatar billede azzodiac Nybegynder
16. april 2005 - 16:29 #7
Arne, smid bare et svar, så får du pointene.
Avatar billede arne_v Ekspert
16. april 2005 - 16:53 #8
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