如何为 Student class 的深层属性设置值?
How do I set value into deep properties of the Student class?
我对 C# 还是个新手。下面是我的学生 class
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
属性。不确定你为什么要建立这么多层次结构,但你可以通过执行以下操作来解决你的问题。
您必须在每个 class 的构造函数中初始化 属性 以避免 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";
}
我对 C# 还是个新手。下面是我的学生 class
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
属性。不确定你为什么要建立这么多层次结构,但你可以通过执行以下操作来解决你的问题。
您必须在每个 class 的构造函数中初始化 属性 以避免 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";
}