Я не могу реализовать критические разделы своего кода для проекта. Задача заключается в разработке бэкэнда на основе текстового журнала. У меня есть метод addStudent, который должен добавить ученика в список в разделе, также содержащемся в списке.
У меня есть метод в классе Gradebook, addStudent, который должен добавить объект ученика в список, содержащийся в текущем объекте Раздела. Разделы также содержатся в списке. Я перепробовал все виды комбинаций, но я не могу найти магические слова, которые действительно позволяют мне достичь этого.
Файл определен в 5 файлах / классах; Задание (на данный момент может быть проигнорировано), Студент, Секция, Журнал успеваемости, Программа (также может игнорироваться, используется только для внешнего интерфейса (ввод для передачи в методы и т. Д.)).
Вот метод, который мне нужно реализовать, который содержится в классе Gradebook.
public bool addStudent(string firstName, string lastName, string username, long phoneNumber)
{
return false; //FIXME
}
Вот класс раздела:
class Section
{
string sectionName;
//probably more properties need to be implemented, or at least would make life simpler
public Section(string sectionName)
{
this.sectionName = sectionName;
List<Student> students = new List<Student>();
List<Assignment> assignments = new List<Assignment>();
}
}
Вот класс ученика:
class Student
{
string firstName = null;
string lastName = null;
long studentID = 0;
long phoneNumber = 0;
int absentcount = 0;
int tardyCount = 0;
double gradePercent = 0;
//need to add more properties, read through Gradebook API for more
public Student(string firstName, string lastName, long studentID, long phoneNumber)
{
this.firstName = firstName;
this.lastName = lastName;
this.studentID = studentID;
this.phoneNumber = phoneNumber;
List<Assignment> studentAssignments = new List<Assignment>();
}
Мне известны дубликаты определений назначений, я пока держу их оба, вероятно, из-за избыточности, хотя это может быть не очень хорошей идеей, и в этом случае я сохраню только версию для студента.
Я ожидаю, что смогу просто добавить более длинную строку, ссылающуюся на каждый объект в соответствующих списках, но я всегда получаю сообщение об ошибке: либо мне нужно сделать поля доступными только для чтения, либо объект не существует , Единственное решение, которое я могу придумать, - это сохранить индекс для последнего измененного элемента в списке, но я бы предпочел этого не делать.
Я бы логично подумал сделать что-то подобное (я знаю, что это неправильно): currentSection.Student.Add(Student(firstName, lastName, username, phoneNumber))
. Я знаю, что этого не может быть, потому что мне нужно ссылаться на элемент списка, а не на сам класс.
Я также, возможно, просто немного обдумываю это, но любая помощь будет признательна.