我有以下代码让 GUI 响应集合中的更改。
myObservableCollection.CollectionChanged += ((sender, e) => UpdateMyUI());
首先,这是一个好方法吗?
第二:取消订阅此活动的代码是什么?是否相同,但带有 -= (然后又是完整的匿名方法)?
首先...是的,这是一种很好的方法,它干净、小巧,易于阅读和理解...当然需要注意的是“除非您以后想取消订阅”。
我相信乔恩·斯基特 https://stackoverflow.com/questions/183367/unsubscribe-anonymous-method-in-c/183380#183380之前指出
“当涉及到使用匿名方法创建的委托的等效性时,规范明确不保证任何一种行为。”
因此,如果您稍后需要取消订阅该事件,您最好实际创建一个委托实例,以便稍后可以保留该引用。
var myDelegate = delegate(sender, e){UpdateMyUI()};
myObservableCollection.CollectionChanged += myDelegate;
myObservableCollection.CollectionChanged -= myDelegate;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)