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? _cost
string _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?