官术网_书友最值得收藏!

How it works...

In the code example, we set the student name and last name to specific values. This was just to illustrate the use of deconstruction. A more likely scenario would be to pass a student number to the Student class (in the constructor perhaps), as follows:

Student student = new Student(studentNumber);

The implementation within the Student class would then perform a database lookup using the student number passed through in the constructor. This will then return the student details. A more likely implementation of the Student class would probably look as follows:

public class Student
{
public Student(string studentNumber)
{
(Name, LastName) = GetStudentDetails(studentNumber);
}
public string Name { get; private set; }
public string LastName { get; private set; }
public List<int> CourseCodes { get; private set; }

public void Deconstruct(out string name, out string lastName)
{
name = Name;
lastName = LastName;
}

private (string name, string surname) GetStudentDetails(string studentNumber)
{
var detail = (n: "Dirk", s: "Strauss");
// Do something with student number to return the student details
return detail;
}
}

You will notice that the GetStudentDetails() method is just a dummy implementation. This is where the database lookup will start and the values will be returned from here. The code that calls the Student class now makes more sense. We call the Student class, pass it a student number, and deconstruct it to find the student's first name and surname.

Student student = new Student("S20323742");
var (FirstName, Surname) = student;
WriteLine($"The student name is {FirstName} {Surname}");
主站蜘蛛池模板: 嘉黎县| 湾仔区| 伊春市| 六枝特区| 汤原县| 库车县| 泗洪县| 京山县| 谷城县| 迭部县| 潜山县| 彭山县| 盱眙县| 鱼台县| 浦城县| 延吉市| 乌拉特中旗| 昭苏县| 广东省| 房山区| 平湖市| 昌邑市| 大关县| 岑溪市| 沁阳市| 怀集县| 长治县| 华安县| 潞城市| 石台县| 行唐县| 通州市| 谷城县| 武义县| 虹口区| 子长县| 景东| 淄博市| 遂溪县| 红河县| 芜湖市|