我需要使用异步
WaitForUpdate
方法在 C# 中实现一个相对简单的字典类。此方法应该允许异步等待指定键值的更新。默认情况下,当为引用类型 (TValue) 传递新引用或为值类型分配新值时,会发生更新。此外,如果集合实现了 IObservableCollection
接口,该方法应该监视集合内的更改。
如果添加或更新了值,则
WaitForUpdate
方法应立即返回。鉴于该类将在项目中大量使用,您对改进和优化该类有何建议?
理想情况下,我想避免使用
CollectionChangedHandlerController
并创建一个单独的字典来管理它。但是,我不确定如何在没有它的情况下有效控制事件处理程序(例如,防止触发删除或替换的集合的处理程序)。任何指导将不胜感激!
快速浏览一下,我有一些建议可以在代码中重复使用,因为您正在使用 .NET 8
CollectionChangedHandlerController 类
我看到您对 EventHandler 进行了空检查:
if (EventHandler != null)
throw new InvalidOperationException("A handler is already registered for this collection change event");
这意味着EventHandler是可为空的,因此您可以在属性上添加可为空的:
private Event<Handler>CollectionChangedEventArgs>? EventHandler;
可选更改:
private class CollectionChangedHandlerController(IObservableCollection collection) { public IObservableCollection Collection { get; } = collection; }