愚かな質問を許しますが、私はC#& OOPを新しくしました。ネストされた配列を初期化する方法
誰も私が "System.NullReferenceException:"を防ぐことができますか?
私は指示に従って割り当てを行い、これまでに学んだこと(配列、クラス、コンストラクタ)を使用しようとしています。
私はStudentSubjectsクラスの配列を作成し、これをStudentクラスの配列に埋め込みました。
各生徒の詳細を印刷したいと思います。
私は答えを探して2週間を過ごしましたが、見つけることができません
をOK StudentArray[0]
フィールドにアクセスすることができますが、「オブジェクト参照がオブジェクトのインスタンスに設定されていない」のでStudentArray[0].StudentSubjectsArray[0]
フィールドに取得することはできません
StudentArray[0].StudentSubjectsArray[0].SubjectName = "Algebra";
どれでもアドバイスを設定する方法のいずれかの例が最も感謝しています。私のコードは以下の通りです....
using System;
namespace Nested_Arrays
{
public class Program
{
static void Main(string[] args)
{
Student[] StudentArray = new Student[1];
Console.WriteLine($"Hello");
StudentArray[0] = new Student();
StudentArray[0].StudentName = "Peter";
StudentArray[0].StudentLocation = "Australia";
Console.WriteLine($"{StudentArray[0].StudentName,10} {StudentArray[0].StudentLocation,15}");
StudentArray[0].StudentSubjectsArray[0].SubjectName = "Algebra";
StudentArray[0].StudentSubjectsArray[0].StudentsResult = "Pass";
Console.WriteLine($"{StudentArray[0].StudentName,10} {StudentArray[0].StudentLocation,15} {StudentArray[0].StudentSubjectsArray[0].SubjectName,15} {StudentArray[0].StudentSubjectsArray[0].StudentsResult,10}");
Console.WriteLine($"Goodbye");
}
public class Student
{
public string StudentName;
private string studentName
{ get { return studentName; } set { studentName = value; } }
public string StudentLocation;
private string studentLocation
{ get { return studentLocation; } set { studentLocation = value; } }
public StudentSubjects[] StudentSubjectsArray;
private StudentSubjects[] studentSubjectsArray
{ get { return studentSubjectsArray; } set { studentSubjectsArray = value; } }
//Constructor
public Student() { }
}
public class StudentSubjects
{
public string SubjectName;
private string subjectName
{ get { return subjectName; } set { subjectName = value; } }
public string StudentsResult;
private string studentsResult
{ get { return studentsResult; } set { studentsResult = value; } }
//Constructor
public StudentSubjects() { }
}
}
}
。私は配列の代わりに 'List'を使うことを提案したいと思います - それはコレクションを扱うより柔軟で安全な方法です。 – MaKCbIMKo
Hello MaKCbIMKo。私はリストを使うことができません。これは課題のためであり、教師が言うことをしなければならない - 彼は配列を使うと言います。 – Joe