在字符串clientNameStr上使用“Replace”会导致“找不到对象引用”错误。
// Get client name
clientName = currentUser.GetValue("ClientName");
string clientNameStr = (string)clientName;
string clientURLStr = string.Empty;
clientURLStr = clientNameStr.Replace(' ', '-');
// clientURLStr = "ST9215-Stanic-Parts-Ltd";
如果我在注释掉的字符串中替换(并注释掉现有的字符串)它工作正常,所以它必须与替换函数有关,但是什么?用“和'引号标记尝试了同样的结果。
非常感谢任何帮助。
谢谢,Oli。
答案 0 :(得分:5)
这基本上表明currentUser.GetValue("ClientName")
正在返回空引用 1 。
我们无法分辨currentUser.GetValue("ClientName")
的作用,但有两种选择:
1 可能它返回一个非空引用,并在下一行中使用用户定义的转换字符串返回null - 但不太可能。我们无法确定,因为我们不知道clientName
的类型。
答案 1 :(得分:3)
可能clientName(以及clientNameStr)为null。您无法调用null对象上的方法,即使您知道它应该是一个字符串。
答案 2 :(得分:0)
currentUser.GetValue(“ClientName”)可能返回null,因此在尝试执行Replace时会抛出错误。
更好的编码将是
clientName = currentUser.GetValue("ClientName");
string clientNameStr = clientName ?? "";
string clientURLStr = clientNameStr.Replace(' ', '-');