Stiamo avviando un sistema e talvolta riceviamo la famosa eccezione NullReferenceExceptioncon il messaggio Object reference not set to an instance of an object.
Tuttavia, in un metodo in cui abbiamo quasi 20 oggetti, con un registro che dice che un oggetto è nullo, non è affatto utile. È come dirti, quando sei l'agente di sicurezza di un seminario, che un uomo tra i 100 partecipanti è un terrorista. Non ti è affatto utile. Dovresti ottenere maggiori informazioni, se vuoi scoprire quale uomo è l'uomo minaccioso.
Allo stesso modo, se vogliamo rimuovere il bug, dobbiamo sapere quale oggetto è nullo.
Ora, qualcosa ha ossessionato la mia mente per diversi mesi, e cioè:
Perché .NET non ci fornisce il nome o almeno il tipo di riferimento all'oggetto, che è null? . Non capisce il tipo dalla riflessione o da qualsiasi altra fonte?
Inoltre, quali sono le migliori pratiche per capire quale oggetto è nullo? Dovremmo sempre testare la nullità degli oggetti in questi contesti manualmente e registrare il risultato? Esiste un modo migliore?
Aggiornamento:
l'eccezione The system cannot find the file specifiedha la stessa natura. Non è possibile trovare quale file fino a quando non si allega al processo e al debug. Immagino che questi tipi di eccezioni possano diventare più intelligenti. Non sarebbe meglio se .NET potesse dirci c:\temp.txt doesn't exist.invece di quel messaggio generale? Come sviluppatore, voto sì.
newper creare istanze di una classe. Quando un tale suggerimento aiuta davvero?