selectedItem
有两个字段:
int? _cost
string _serialNumber
在这个例子中,_cost
和_serialNumber
的selectedItem
都是空。我正在阅读通过selectedItem
其属性的字段,并在...时在文本框中填充其值。
TextBox1.Text = selectedItem.Cost.ToString(); //no error
TextBox2.Text = selectedItem.SerialNumber.ToString(); //error
我知道这SerialNumber.ToString()
是多余的(因为它已经是一个字符串),但是我不明白为什么这会导致此异常:
可为空的对象必须具有一个值。
int? _cost
可以为空,并且没有值,但是它没有给我例外。string _serialNumber
可以为空,并且没有值,但是确实给了我例外。
这个问题触及了这个问题,这个家伙本质上是在问同样的事情,但是没有指定的答案,也没有解释为什么可以为空int
?例如,我可以.ToString()
在可为null的int上使用,但不能在null字符串上使用吗?
MessageBox.Show
和如何String.Concat
使用null
字符串。