从C#中的类声明数组

我想创建一个用类定义的“高分” 对象的数组。
尝试设置或读取特定数组内容的值时,总是会收到NullReferenceException。

当我使用单个Highscore对象而不是Array时,它确实起作用。

当我使用整数数组而不是Highscore数组时,它也可以工作。

代码

class Highscore
{
    public int score;
}
class Program
{
    static void Main()
    {
        Highscore[] highscoresArray = new Highscore[10];
        highscoresArray[0].score = 12;
        Console.WriteLine(highscoresArray[0].score);
        Console.ReadLine();
    }
}

System.NullReferenceException:

highscoresArray []为空。

yangxiong9852 回答:从C#中的类声明数组

在此代码中:

Highscore[] highscoresArray = new Highscore[10];

您实例化一个Highscore对象数组,但没有实例化该数组中的每个对象。

然后您需要做

for(int i = 0; i < highscoresArray.Length; i++)
    highscoresArray[i]  = new Highscore();
,

您必须先向数组添加Highscore,例如:

highscoresArray[0] = new Highscore();
,

那是因为您已经创建了一个数组,设置了数组的长度,但实际上没有实例化任何它的元素。一种方法是:

Highscore[] highscoresArray = new Highscore[10];
highscoresArray[0] = new Highscore();
,

也许您需要初始化数组的每个项目:

 for (int i = 0; i < highscoresArray.length; i++)
 {
      highscoresArray[i] = new Highscore();
 }
,

..或使用结构

struct Highscore
{
    public int score;
}
本文链接:https://www.f2er.com/3152809.html

大家都在问