Dlaczego .ToString () na łańcuchu zerowym powoduje błąd null, gdy .ToString () działa poprawnie na wartości dopuszczalnej null z wartością null?

selectedItem ma dwa pola:

int? _coststring _serialNumber

W tym przykładzie_cost i_serialNumber zselectedItem są OBU null. Czytam polaselectedItem poprzez ich właściwości i wypełnianie pól tekstowych ich wartościami, gdy ...

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

Rozumiem, żeSerialNumber.ToString() jest zbędny (ponieważ jest już ciągiem), ale nie rozumiem, dlaczego powoduje to ten wyjątek:

Obiekt dopuszczalny musi mieć wartość.

int? _cost jest pusta i nie ma wartości, ale nie daje mi wyjątku.string _serialNumber jest dopuszczalna i nie ma jeszcze wartościrobi daj mi wyjątek.

Topytanie dotyka tego, facet zasadniczo pyta o to samo, ale nie ma wyznaczonej odpowiedzi, a także nie wyjaśnia, dlaczego dopuszcza sięint? Na przykład mogę użyć.ToString() na wartości dopuszczalnej null, ale nie na łańcuchu zerowym?

questionAnswers(8)

yourAnswerToTheQuestion