gpt4 book ai didi

c# - 有没有办法在每次对象改变状态时执行一个 Action ?

转载 作者:太空宇宙 更新时间:2023-11-03 21:07:45 24 4
gpt4 key购买 nike

我有一个传递给接口(interface)的对象,我希望每当该对象的一个​​成员更改状态时,位于该接口(interface)后面的具体执行一些操作。换句话说,我有一些包含整数的对象。当该整数的值发生变化时,我希望位于该接口(interface)后面的具体类做一些工作。

现在,我可能会做这样的事情,方法是让一个线程处于 wait 状态,并在某个 pulse 使用 完成后执行操作监控。但是,我想知道 C# 语言是否对这种事情有内在的支持。这样,当对象的成员更改状态 时,将自动执行操作。我知道这可能是不可能的,如果有替代解决方案,我想听听。或者,线程听起来是个好主意吗?

最佳答案

您应该实现 INotifyPropertyChanged,并在 INotifyPropertyChanged 之后继承您的接口(interface)。然后为所有状态相关的事物引入属性,并始终在 setter 方法中触发 PropertyChanged 事件。

这需要一些样板代码,但它是非常可靠的解决方案。您可以将您的属性虚拟化并使用 IoC 容器(例如 Unity)为您实现样板文件。

实现完成后,您只需使用 += 运算符订阅对象的 PropertyChanged 事件即可。

  myWatchedObject.ProperyChanged += listener.DependentObjectChangeHandler;

关于c# - 有没有办法在每次对象改变状态时执行一个 Action ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40088105/

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