2015-05-19 15 views
8

So che Convert.ToString(obj) gestisce il valore nullo e ToString(obj) non gestisce il valore nullo. Significa che genererà un errore se il valore obj è nullo.Metodo Convert.ToString() e .ToString() in C#

ex:- 
object b = null; 
textBox1.Text = b.ToString(); // It will throw a null reference exception because the object value is null. 

È corretto e funziona come previsto. Ma,

ex:- 
int? c = null; 
textBox1.Text = c.ToString(); 

ho provato in questo modo. Ma in questo caso non sta generando un errore di eccezione di riferimento null. Perché non sta generando un errore di eccezione di riferimento null. Qualcuno può rispondere?

suggerimenti benvenuto.

risposta

2

Nullable<T> è un tipo di struttura/valore. Il nullable effettivo non è nullo, ma il valore è. object è un tipo di classe/riferimento.

9

Questo perché Nullable<int> (che è il tipo per cui int? è una scorciatoia per) è una struttura e quindi mai null.

int? c = null è in realtà assegnando lo c.Value sia Null anziché c stesso, in modo c.ToString() è ancora un'operazione valida.

Problemi correlati