1

在此声明中:

string[] TardyEvenEmorys;

...Resharper 告诉我,“永远不会分配字段‘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 告诉我什么?我应该在声明时实例化字符串[],或者......???

4

2 回答 2

15

您正在分配数组的各个元素,但从未实际创建数组本身

那么 Resharper 告诉我什么?我应该在声明时实例化字符串[],或者......???

您需要在某处实例化数组。这可能是在声明期间或之后。例如,要在声明期间执行此操作,您需要添加:

string[] TardyEvenEmorys = new string[5]; // Some appropriate length

如果没有这个,当你第一次分配一个元素时,你会得到一个异常,因为数组是空的。

于 2012-09-07T16:33:33.960 回答
3

您在某处缺少以下代码,应该得到空指针异常:

TardyEvenEmorys = new string[22];
于 2012-09-07T16:34:21.000 回答