Problema System.Collections.Hashtable (NullReferenceException)

sabato 28 marzo 2009 - 20.49

FBSC Profilo | Newbie

Sto sviluppando una libreria per la scrittura di log ed ho aggiunto una funzione per prendere il dato relativo alla data specificata.
Io ho fatto così:
public string GetLogByDate(string name, string date) { StreamReader stream = new StreamReader(name); string[] splitted = stream.ReadToEnd().Split(new char[] { '#' }); Hashtable hash = new Hashtable(); foreach (string split in splitted) { string[] line = split.Split(new char[] { '$' }); hash.Add(split[0].ToString(), split[1]); } return hash[date].ToString(); // Qui lancia l'eccezione stream.Close(); }

Non riesco a capire perchè lancia una NullReferenceException Mi potreste aiutare? Grazie in anticipo

rossimarko Profilo | Guru

Ciao,

qual'è lo scopo della procedura? Perchè riguardando il codice non vedo un inserimento di un elemento nell'hash table con chiave "date" quindi mi sembra normale che quando scrivi
return hash[date]

ti torni NullReferenceException
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

FBSC Profilo | Newbie

Già.. scusate. Non ho specificato il formato del log:
data$programma:messaggio # altro log
per cui io faccio uno split per dividere ogni log, poi divido il log in data (split[0]) e messaggio (split[1]), quindi aggiungo una voce ad hash con indice split[0] e contenuto split[1]..... quindi data la variabile "data" trova il log corrispondente

rossimarko Profilo | Guru

Prova a controllare all'interno della collection che elementi sono stati inseriti utilizzando la funzionalità quick watch in debug.

Il parametro string date che passi contiene il valore corretto (ovvero la stringa "data") ?
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

FBSC Profilo | Newbie

dove posso trovare questo controllo?

rossimarko Profilo | Guru

E' uno strumento di visual studio. Quando sei in debug schiaccia il tasto destro del mouse sulla variabile da controllare e hai due voci: Add to watch e QuickWatch che ti fanno vedere il contenuto. Usa quella con cui ti trovi meglio
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

FBSC Profilo | Newbie

Probabilmente è uno strumento che è disponibile solo con Visual Studio, e non con Visual Studio Express Edition Grazie lo stesso per il supporto
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5