protected MapEventHandlerBase(MapEventTypes eventType, Func <TSender, TArgs, ValueTask> handler) { EventType = eventType; _handler = handler; }
protected abstract TArgs CreateEventArgs(MemberInfo member, Lazy <TKey> key, Lazy <TValue> value, Lazy <TValue> oldValue, Lazy <TValue> mergeValue, MapEventTypes eventType, int numberOfAffectedEntries, object state);
protected override MapEntryLoadedEventArgs <TKey, TValue> CreateEventArgs(MemberInfo member, Lazy <TKey> key, Lazy <TValue> value, Lazy <TValue> oldValue, Lazy <TValue> mergeValue, MapEventTypes eventType, int numberOfAffectedEntries, object state) => new MapEntryLoadedEventArgs <TKey, TValue>(member, key, value, oldValue, state);
public ValueTask HandleAsync(TSender sender, MemberInfo member, Lazy <TKey> key, Lazy <TValue> value, Lazy <TValue> oldValue, Lazy <TValue> mergeValue, MapEventTypes eventType, int numberOfAffectedEntries, object state) => _handler(sender, CreateEventArgs(member, key, value, oldValue, mergeValue, eventType, numberOfAffectedEntries, state));