在此声明中:
string[] TardyEvenEmorys;
... Resharper告诉我,“ Field'TardyEvenEmorys'永远不会被分配。”
稍后在代码中,将对字符串[]:
进行分配TardyEvenEmorys[1] = string.Empty;
TardyEvenEmorys[2] = string.Empty;
TardyEvenEmorys[3] = string.Empty;
TardyEvenEmorys[4] = string.Empty;
...然后有条件地添加实际值:
foreach (KeyValuePair<int, string> entry in itemNumberTardyPairs)
{
TardyEvenEmorys[entry.Key] = entry.Value;
。 。
...最后,这些值以这种方式使用:
string url = GetTardyFilename(TardyEvenEmorys[Number]);
那么Resharper告诉我什么?我应该在声明中实例化字符串[],或者...... ???
答案 0 :(得分:15)
您正在分配数组的各个元素,但实际上从未实际创建数组。
那么Resharper告诉我什么?我应该在声明中实例化字符串[],或者...... ???
您需要在某处实例化数组。这可能是在声明期间或之后。例如,要在声明期间执行此操作,您需要添加:
string[] TardyEvenEmorys = new string[5]; // Some appropriate length
如果没有这个,第一次分配其中一个元素时,你会得到一个异常,因为数组为空。
答案 1 :(得分:3)
您在某处丢失了以下代码,并且应该获得空指针异常:
TardyEvenEmorys = new string[22];