gpt4 book ai didi

c# - 在类层次结构中传播属性值

转载 作者:太空宇宙 更新时间:2023-11-03 19:31:06 25 4
gpt4 key购买 nike

我想将属性从子类传播到父类,即:如果 MySchool.ModifiedTime 发生变化,它也应该改变学生类(class)中的 ModifiedTime,就像明智的 LstBook[0].ModifiedTime 发生变化一样,它应该改变 MySchool。 ModifiedTime 以及 Student.ModifiedTime...(基本上 ModifiedTime 应该同步),任何想法

我正在 BaseClass 中寻找通用函数来实现这一点。

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 属性检索它

关于c# - 在类层次结构中传播属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4811421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com