c# - 为什么 Resharper 告诉我我的 string[] 从未被分配?

标签 c# refactoring resharper automated-refactoring

关于此声明:

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/

相关文章:

c# - 调试底层 C++ DLL 中的问题

php - 我应该重构这段代码吗?

refactoring - 你用残暴的代码做什么?

resharper - 如何禁用烦人的 Resharper 8.0.2 代码完成?

c# - 是否可以静态验证 c# 表达式树参数的结构?

c# - VS 2017 : The security debugging option is set but it requires the Visual Studio hosting process which is unavailable

c# - 使用 NHibernate 实现全局化

c# - AutoProperty 和 Member 有什么区别

resharper - 编辑 Resharper Intellisense 建议

javascript - 从原型(prototype)类改进此代码片段