我无法弄清楚原因
static void Main(string[] args)
{
string nullstr=null;
string teststring=string.Format("{0}", nullstr + (char)('A'+1));
Console.WriteLine("After concatenating null string and char = " + test string);
}
是正确的并且运行正常,但
public void setName(string prefix=null)
{
for(int i=0; i<Count; i++)
{
something[i].Name = string.Format("{0}", prefix+(char)('A'+i));
}
}
通过在程序代码中的某个地方调用来失败。
setName();
setName()函数默认为字符串为null但它抛出System.NullReferenceException
我正在使用Visual Studio 2015.
答案 0 :(得分:1)
您可能需要仔细检查something[i]
的内容。例外情况必须与此相关..
something[i].Name
答案 1 :(得分:1)
除了您提供的代码中的拼写错误之外,它在重新格式化时运行正常:
static void Main(string[] args)
{
string nullstr = null;
string teststring = string.Format("{0}", nullstr + (char)('A' + 1));
Console.WriteLine("After concatenating null string and char = " + teststring);
Console.WriteLine(setName(10, "_"));
}
public static string setName(int count = 0, string prefix = null)
{
string str = "";
for (int i = 0; i < count; i++)
{
str += string.Format("{0}", prefix + (char)('A' + i));
}
return str;
}
// Prints the following:
//
// After concatenating null string and char = B
// _A_B_C_D_E_F_G_H_I_J
因此,您的NullReferenceException必须来自您为其分配字符串的对象。 something
或something[i]
为空。