I get this error System.NullReferenceException: 'Object reference not set to an instance of an object.' when trying to get user input from the main method and outputting it using the method toString that is located in my student class. Any help is appreciated.
code in main method:
using System;
namespace Test
{
class Program
{
static void Main(string[] args)
{
Student[] myStudent = new Student[5];
for(int i = 0; i < myStudent.Length; i++)
{
Console.WriteLine("Enter Student Number: ");
myStudent[i].StudentNumber = int.Parse(Console.ReadLine());
Console.WriteLine("Enter Forename: ");
myStudent[i].Forename = Console.ReadLine();
Console.WriteLine("Enter Surname: ");
myStudent[i].Surname = Console.ReadLine();
Console.WriteLine("Enter House: ");
myStudent[i].House = Console.ReadLine();
Console.WriteLine("Enter Year: ");
myStudent[i].Year = int.Parse(Console.ReadLine());
Console.WriteLine(myStudent[i].toString());
}
Console.ReadLine();
}
}
}
Code in my student class:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Test
{
class Student
{
//Instance variables
private int studentNumber;
private int year;
private string forename;
private string surname;
private string house;
//Default constructor
public Student()
{
studentNumber = 0;
year = 0;
forename = "";
surname = "";
house = "";
}
public Student(string _forename, string _surname, string _house, int _studentNumber, int _year)
{
forename = _forename;
surname = _surname;
house = _house;
studentNumber = _studentNumber;
year = _year;
}
public Student(string _forename, string _surname, string _house)
{
forename = _forename;
surname = _surname;
house = _house;
studentNumber = 0;
year = 0;
}
//Gets and sets
public int StudentNumber
{
get { return studentNumber; }
set { studentNumber = value; }
}
public int Year
{
get { return Year; }
set { Year = value; }
}
public string Forename
{
get { return forename; }
set { forename = value; }
}
public string Surname
{
get { return surname; }
set { surname = value; }
}
public string House
{
get { return house; }
set { house = value; }
}
public string toString()
{
return String.Format("Student Number: {0} \nForename: {1} \nSurname: {2} \nHouse: {3} \nYear: {4}", studentNumber, forename, surname, house, year);
}
}
}