Добавьте свойство в класс Student типа Address.
public Address StudentAddress { get; set; }
Настройте таким образом переопределение .ToString
public override string ToString()
{
return $"Student {FullName} with ID {StudentNumber}, is {Age} years old and has an average score {AverageScore()}. The student's full address is: {StudentAddress.GetFullAddress()} ";
}
Вы вызываете метод GetFullAddress для StudentAddress. Вы можете вызвать этот метод, потому что StudentAddres имеет тип Address.
Затем в пользовательском интерфейсе создайте нового ученика. Обратите внимание, что вы создаете новый адрес для установки свойства StudentAddress. Я поместил этот код одним нажатием кнопки, потому что у меня есть приложение WinForms, но оно будет работать и для консольного приложения.
private void button1_Click(object sender, EventArgs e)
{
Student s = new Student();
s.Age = 21;
s.FirstName = "George";
s.LastName = "Washington";
s.StudentNumber = "S54";
s.StudentAddress = new Address("Park Street","Houston", "USA" );
MessageBox.Show(s.ToString());
}
Я изменил имя SetFullAddress на GetFullAddress. Набор подразумевает настройку свойств. Так же, как в получить и установить.
Кстати, DOB - Дата рождения. Возраст меняется, может завтра, может на следующей неделе. Мы не знаем Если вы используете DOB в качестве даты, возраст можно рассчитать по мере необходимости.
EDIT
Дополнительный код за ваш комментарий.
static void Main(string[] args)
{
Student newStudent = AddStudent();
Console.WriteLine(newStudent); //calls .ToString()
Console.ReadKey();
}
private static Student AddStudent()
{
Student s = new Student();
Console.WriteLine("Enter first name");
s.FirstName = Console.ReadLine();
Console.WriteLine("Enter last Name");
s.LastName = Console.ReadLine();
//etc.
Console.WriteLine("Enter Street");
string Street = Console.ReadLine();
Console.WriteLine("Enter City");
string City = Console.ReadLine();
Console.WriteLine("Enter Country");
string Country = Console.ReadLine();
Address a = new Address(Street, City, Country);
s.StudentAddress = a;
return s;
}