首页 > 解决方案 > Declaring an Array from a Class in C#

问题描述

I want to create an Array of "Highscore" objects that I defined with a class.
I'm always getting a NullReferenceException when I try to set or read the Value of a specific Array content.

It does work when I use a single Highscore object instead of an Array.

It also does work when I use an integer array instead of an Highscore Array.

Code

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[] was null.

标签: c#arraysclassdeclare

解决方案


in this code:

Highscore[] highscoresArray = new Highscore[10];

you instantiate an array of Highscore objects but you do not instantiate each object in the array.

you need to then do

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

推荐阅读