该字段永远不会被分配给,并且始终具有其默认值null

本文关键字:null 默认值 永远 字段 分配 | 更新日期: 2023-09-27 18:11:03

我目前在一个类文件中有2个bool数组,由

定义
public static bool[] bArray;
public static bool[] randomRemove;

我这样填充bArray

public static void fillArray()
{
    for (int x = 0; x < 54; x++)
    {
        bArray[x] = false;
    }
}

我这样填充randomRemove

for (int i = 0; i < sizeOfArray; i++)
{
    randomRemove[i] = false;
}

其中sizeOfArray是我使用的字符串数组的长度。

对于每个bool数组,我有两个警告,表示它们永远不会被赋值,并且始终具有其默认值null,但我显然有分配它们的代码。每当我尝试单击一个利用数组的按钮时,就会得到一个运行时错误。发生这种事有什么原因吗?

该字段永远不会被分配给,并且始终具有其默认值null

你需要调用

bArray = new bool[sizeOfArray];
在使用

之前在代码的某个地方。此外,bool数组默认为所有false。

您没有实例化您的数组-参见http://msdn.microsoft.com/en-us/library/aa288453(v=vs.71).aspx获取更多信息。

public static bool[] bArray = new bool[sizeOfArray];
public static bool[] randomRemove = new bool[sizeOfArray];

没有创建数组的实例。试着

public static bool[] bArray = new bool[54]();
public static bool[] randomRemove = new bool[sizeofarray]();

您需要在构造函数中或在有意义的地方初始化数组。

public class MyClass
{
  public static bool[] bArray;
  static MyClass()
  {
    bArray = new bool[54];
  }
}

在你的代码中,你只分配数组中的项目,这会给你一个NullReferenceException,因为你的数组= null。您需要初始化数组