Här kommer en "dum" fråga - har totalt hjärnsläpp, eller så buggar något grovt. Vad händer om du skriver Ska det inte vara IDToTagList.Item(1234);? Hakparenteser är väl för arrayer, iaf i Java... Löste det, som jag oftast gör några minuter efter att jag postat på någon forum. Damnit. :)Hashtable: Vad missar jag?
Koden:
<code>
Hashtable IDToTagList = new Hashtable();
IDToTagList.Add(1234, "TestKey");
... senare ...
string s = (string)IDToTagList[e.HotkeyID];
</code>
Inte mycket att bråka om, eller hur?
Jag sätter en breakpoint på den sista raden.
e.HotkeyID är (t ex) 1234. Jag kollar upp vad IDToTagList innehåller; en sak. Visst är det nyckeln 1234 den innehåller, som pekar till "TestKey".
Jag har givetvis kollat, dubbelkollat och trippelkollat värdet Hashtable'n innehåller och värdet av e.HotkeyID (mouseover i visual studio), och allting stämmer överens.
Varför i hela världen blir då strängen null, och inte "TestKey"? Jag får inga exceptions eller dylikt.Sv: Hashtable: Vad missar jag?
<code>
IDToTagList[e.HotkeyID].ToString();
</code>Sv:Hashtable: Vad missar jag?
Sv:Hashtable: Vad missar jag?
Problemet var att jag satte keyn med ett UInt32-värde och e.HotkeyID var Int32, de räknades förstås som separata keys, trots att de ser exakt likadana ut för blotta ögat.
Tack ändå :)