我知道Convert.ToString(obj)
处理空值而ToString(obj)
没有处理空值。这意味着如果obj值为null,它将抛出错误。
ex:-
object b = null;
textBox1.Text = b.ToString(); // It will throw a null reference exception because the object value is null.
这是正确的,并按预期工作。 但是,
ex:-
int? c = null;
textBox1.Text = c.ToString();
我试过这种方式。 但在这种情况下,它不会抛出空引用异常错误。 为什么不抛出空引用异常错误。有谁能回答?
建议欢迎。
答案 0 :(得分:9)
这是因为Nullable<int>
(int?
是其简写的类型)是一个结构,因此永远不会null
。
int? c = null
实际上将c.Value
分配为Null
而不是c
本身,因此c.ToString()
仍然是有效的操作。
答案 1 :(得分:2)
Nullable<T>
是结构/值类型。实际可为空的nullable不为null,但值为。 object
是类/引用类型。