我想将该属性从子类传播到父类,
即:如果更改了MySchool.ModifiedTime,它也应该更改学生类中的ModifiedTime,就像明智的LstBook [0] .ModifiedTime一样,它也应该更改MySchool.ModifiedTime和Student.ModifiedTime ...(基本上ModifiedTime应该同步) ,任何的想法
我正在寻找BaseClass中的Generic函数来实现这一点。
public class MyBaseClass
{
public DateTime ModifiedTime{ get; set; }
}
public class Student: MyBaseClass
{
public string Name { get; set; }
public school MySchool {get;set;}
}
public class School : MyBaseClass
{
public string SchoolName { get; set; }
public List<Book> LstBook {get;set;}
}
public class Book:MyBaseClass
{
public string BookName{get;set;}
}
最佳答案
您可以将ModifiedTime
设置为虚拟,然后在每个子类中将其覆盖以执行同步。
public class MyBaseClass
{
public virtual DateTime ModifiedTime{ get; set; }
}
public class Student: MyBaseClass
{
public string Name { get; set; }
public school MySchool {get;set;}
public virtual DateTime ModifiedTime
{
get {
return MySchool.ModifiedTime;
}
set {
MySchool.ModifiedTime = value;
}
}
}
等等。
但是,我将重新考虑您的类层次结构,因为似乎分解不正确。如果所有属性都需要在整个层次结构中同步,则可能只有一个类应具有该属性,而其他类应引用该属性。例如,只有
School
应该具有ModifiedTime属性,并且当您需要获取学生的修改时间时,可以通过MySchool
属性进行检索。