feat: event listener counts as constructor parameters

This commit is contained in:
Syntriax 2025-06-09 18:19:08 +03:00
parent 6a41407005
commit 62b54ee836

View File

@ -3,10 +3,10 @@ using System.Collections.Generic;
namespace Syntriax.Engine.Core;
public class Event
public class Event(int initialListenerCount = 4, int initialOnceListenerCount = 2)
{
private readonly List<EventHandler> listeners = new(4);
private readonly List<EventHandler> onceListeners = new(2);
private readonly List<EventHandler> listeners = new(initialListenerCount);
private readonly List<EventHandler> onceListeners = new(initialOnceListenerCount);
public void AddListener(EventHandler listener) => listeners.Add(listener);
public void AddOnceListener(EventHandler listener) => onceListeners.Add(listener);
@ -38,10 +38,10 @@ public class Event
public delegate void EventHandler();
}
public class Event<TSender>
public class Event<TSender>(int initialListenerCount = 4, int initialOnceListenerCount = 2)
{
private readonly List<EventHandler> listeners = new(4);
private readonly List<EventHandler> onceListeners = new(2);
private readonly List<EventHandler> listeners = new(initialListenerCount);
private readonly List<EventHandler> onceListeners = new(initialOnceListenerCount);
public void AddListener(EventHandler listener) => listeners.Add(listener);
public void AddOnceListener(EventHandler listener) => onceListeners.Add(listener);
@ -73,10 +73,10 @@ public class Event<TSender>
public delegate void EventHandler(TSender sender);
}
public class Event<TSender, TArguments>
public class Event<TSender, TArguments>(int initialListenerCount = 4, int initialOnceListenerCount = 2)
{
private readonly List<EventHandler> listeners = new(4);
private readonly List<EventHandler> onceListeners = new(2);
private readonly List<EventHandler> listeners = new(initialListenerCount);
private readonly List<EventHandler> onceListeners = new(initialOnceListenerCount);
public void AddListener(EventHandler listener) => listeners.Add(listener);
public void AddOnceListener(EventHandler listener) => onceListeners.Add(listener);