Por que .ToString () em uma string nula causa um erro nulo, quando .ToString () funciona bem em um int anulável com valor nulo?

selectedItem tem dois campos:

int? _coststring _serialNumber

Neste exemplo,_cost e_serialNumber doselectedItem são BOTH null. Eu estou lendo através dos campos deselectedItem através de suas propriedades, e preenchendo caixas de texto com seus valores, quando ...

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

Eu entendi aquiloSerialNumber.ToString() é redundante (porque já é uma string), mas não entendo porque isso causa essa exceção:

Objecto nulo deve ter um valor.

int? _cost é anulável e não tem um valor, mas não me dá a exceção.string _serialNumber é anulável e não tem valor.faz me dê a exceção.

estequestão toca nele, o cara está essencialmente perguntando a mesma coisa, mas não há resposta designada, e também não explica por que uma taxa anulávelint? Por exemplo, posso usar.ToString() em um int anulável, mas não em uma string nula?

questionAnswers(8)

yourAnswerToTheQuestion