gpt4 book ai didi

c# - 检查 POCO 上的属性值是否已更改

转载 作者:行者123 更新时间:2023-11-30 21:07:36 26 4
gpt4 key购买 nike

我有一个每 N 秒更新一次的 POCO。我遇到的问题是,自上次更新以来,并非所有属性都发生了变化。

我需要知道自上次更新以来哪些属性发生了变化,以便记录这些变化。为此,我可以保留上一次更新的 POCO 副本并每次执行比较,然后可能会为每个属性更改触发一个事件。

有没有人有更好的解决方案可供我在这里使用?

最佳答案

  • http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.aspx这是处理数据绑定(bind)的标准方式。

  • 在您只想检测实际值与上次不同的属性的情况下,每次更新时都必须将每个属性的状态保存为“旧”值 - 例如,如果您不想要自上次更新后从 5 变为 3 再变为 7 又变为 5 的属性。

  • 如果您不关心这种区别,并且不想使用 propertychanged,您可以给每个属性一个 bool 值,您在 setter 中将它们设置为 true,并在每次您将它们设置为 false更新。

  • 您可以创建一个 GetProperty/SetProperty 机制 - 在 setter/getter 中调用这些函数,然后您可以在后台以您想要的任何方式保存实际数据和有关它的任何元数据。然而,这不再是真正的 POCO。

关于c# - 检查 POCO 上的属性值是否已更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10281209/

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