[英]How do I set value into deep properties of the Student class?
我還是C#的新手。 所以下面是我的學生班
class Student
{
public partial class Document
{
private StudentBio studentBio;
public StudentBio StudentBio{get;set;}
}
public partial class StudentBio
{
private StudentCourse[] studentCourse;
public StudentCourse[] StudentCourse{get;set;}
}
public partial class StudentCourse
{
private string courseId;
private string courseName;
public string CourseName{get;set;}
}
}
由於在將值設置為字段時出現錯誤,因此如何設置courseId。 我無法像Document.StudentBio.StudentCourse.CourseId這樣直接訪問以設置值。
public static void Main()
{
Student myObject = new Student();
Type myType = typeof(Student);
FieldInfo myFieldInfo = myType.GetField("courseId",
BindingFlags.NonPublic | BindingFlags.Instance);
Console.WriteLine(myFieldInfo);
}
不需要Reflection
來設置deep
屬性。 不知道為什么要進行這么多的層次結構設置,但是可以通過執行以下操作解決問題。
您必須在每個類的Constructor中初始化屬性,以避免NUllReferenceExecption
public class Student
{
public Student()
{
StudentDoc = new Document();
}
public Document StudentDoc { get; set; }
}
public class Document
{
public Document()
{
StudentBio = new StudentBio();
}
public StudentBio StudentBio { get; set; }
}
public class StudentBio
{
public StudentBio()
{
StudentCourse = new StudentCourse();
}
public StudentCourse StudentCourse { get; set; }
}
public class StudentCourse
{
public string CourseId { get; set; }
public string CourseName { get; set; }
}
從主
public static void Main()
{
Student myObject = new Student();
myObject.StudentDoc.StudentBio.StudentCourse.CourseId = "10";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.