关于此声明:
string[] TardyEvenEmorys;
...Resharper 告诉我,“'TardyEvenEmorys' 字段从未分配。”
稍后在代码中,对 string[] 进行赋值:
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 告诉我什么?我应该在声明中实例化 string[],或者...???
最佳答案
您正在分配数组的各个元素,但从未真正创建数组本身。
So what is Resharper telling me? That I should instantiate the string[] on declaration, or...???
您需要在某处实例化数组。这可能是在声明期间或之后。例如,要在声明期间执行此操作,您需要添加:
string[] TardyEvenEmorys = new string[5]; // Some appropriate length
如果没有这个,你第一次分配一个元素时,你会得到一个异常,因为数组是空的。
关于c# - 为什么 Resharper 告诉我我的 string[] 从未被分配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12322071/