如何在运行时对C#类进行属性重写
本文关键字:属性 重写 运行时 | 更新日期: 2023-09-27 18:30:13
考虑一些代表一些应用程序数据的C#类。例如具有某些属性的class A
:
public class A
{
public bool P1 { set; get; }
public string P2 { set; get; }
public int P3 { set; get; }
}
此外,我的申请中有不同的时间范围。比方说时间范围1和2。起初,我的应用程序设置为时间范围1。A
的一些实例类似地存在于所有时间范围中。现在我切换到时间范围2,并为A
的某个实例的P2
设置一个新值。新值应仅影响时间范围2。在切换回时间范围1时,P2
应具有旧值。切换回时间范围2
,P2
再次为新值。
每当我在数据模型中设置任何值时,它都应该特定于当前时间范围,而不会影响其他时间范围。另一方面,未更改的值应在所有时间范围内共享。对于如何表示这些时间范围没有任何要求。可能是某种TimeRange
类,但也可能是其他类。
您将如何在C#中设计这样一个场景?
我认为您必须将属性替换为方法,因为它是随时间范围重新分配的。如果可能的话,也可以将时间范围包括在此类中。
也许您可以用Tuple<string, string>
更改string
P2,这样您就可以在切换"模式"时访问这两个值。