¿Por qué .ToString () en una cadena nula causa un error nulo, cuando .ToString () funciona bien en un int. Con valor nulo?

selectedItem tiene dos campos:

int? _coststring _serialNumber

En este ejemplo,_cost y_serialNumber deselectedItem son los dos nulos. Estoy leyendo a través de los campos deselectedItem a través de sus propiedades, y rellenando los cuadros de texto con sus valores, cuando ...

TextBox1.Text = selectedItem.Cost.ToString(); //no error
TextBox2.Text = selectedItem.SerialNumber.ToString(); //error

Entiendo queSerialNumber.ToString() es redundante (porque ya es una cadena), pero no entiendo por qué esto causa esta excepción:

Objeto nullable debe tener un valor.

int? _cost es anulable, y no tiene un valor, pero no me da la excepción.string _serialNumber es anulable, y no tiene un valor, sin embargo,hace dame la excepcion

Estapregunta toca el tema, el chico esencialmente está preguntando lo mismo, pero no hay una respuesta específica, y tampoco explica por qué un nullableint? Por ejemplo, ¿puedo usar.ToString() en un int nullable pero no en una cadena nula?

Respuestas a la pregunta(8)

Su respuesta a la pregunta