我已经读过Convert.ToString应该处理null,但是当它在我的代码中传递一个空对象时它不起作用
在这种情况下,对象"名称"是空的。
var name = Convert.ToString(Name.LastName);
我没有将Object引用设置为对象的实例。
答案 0 :(得分:10)
这与Convert.ToString
无关。您正尝试通过空引用访问LastName
。这是一个运行时异常。
此处Name
和LastName
都可以为null。如果Convert.ToString
为空,则永远不会在上面的代码中调用Name
。
答案 1 :(得分:3)
该异常不是由Convert.ToString()
引起的。
您的代码中存在异常,因为您试图从空引用中获取LastName
的值。这会导致运行时异常。
要解决此问题,在尝试访问Name
之前,您需要检查LastName
是否为空。
var name = Name != null ? Convert.ToString(Name.LastName) : null;
答案 2 :(得分:2)
在这种情况下,当C#评估Name.LastName时,它将崩溃。这是因为你真的在评估Null.LastName,这没有意义。 Conver.ToString(Null)将起作用。
答案 3 :(得分:2)
当Name
为空时,您无法访问null
的.LastName。
var name = Convert.ToString((Name != null) ? Name.LastName : "");
答案 4 :(得分:1)
如上所述,您的代码说要执行以下操作:
Name
。LastName
Name
字段
Name.LastName
字段传递给Convert.ToString
方法name
您的代码在第2步失败。由于Name
为空,因此没有Name.LastName
字段可用,因此您永远不会进入第3步。因此,无论是否{ {1}}正确处理空参数,因为在您调用Convert.ToString
之前已经抛出了NullReferenceException
。