fix: events not having default parameterless constructor

This commit is contained in:
Syntriax 2025-06-09 18:34:20 +03:00
parent 152b0e93db
commit eee3056614

View File

@ -3,10 +3,10 @@ using System.Collections.Generic;
namespace Syntriax.Engine.Core; namespace Syntriax.Engine.Core;
public class Event(int initialListenerCount = 4, int initialOnceListenerCount = 2) public class Event
{ {
private readonly List<EventHandler> listeners = new(initialListenerCount); private readonly List<EventHandler> listeners = null!;
private readonly List<EventHandler> onceListeners = new(initialOnceListenerCount); private readonly List<EventHandler> onceListeners = null!;
public void AddListener(EventHandler listener) => listeners.Add(listener); public void AddListener(EventHandler listener) => listeners.Add(listener);
public void AddOnceListener(EventHandler listener) => onceListeners.Add(listener); public void AddOnceListener(EventHandler listener) => onceListeners.Add(listener);
@ -35,13 +35,25 @@ public class Event(int initialListenerCount = 4, int initialOnceListenerCount =
} }
} }
public Event(int initialListenerCount = 4, int initialOnceListenerCount = 2)
{
listeners = new(initialListenerCount);
onceListeners = new(initialOnceListenerCount);
}
public Event()
{
listeners = new(4);
onceListeners = new(2);
}
public delegate void EventHandler(); public delegate void EventHandler();
} }
public class Event<TSender>(int initialListenerCount = 4, int initialOnceListenerCount = 2) public class Event<TSender>
{ {
private readonly List<EventHandler> listeners = new(initialListenerCount); private readonly List<EventHandler> listeners = null!;
private readonly List<EventHandler> onceListeners = new(initialOnceListenerCount); private readonly List<EventHandler> onceListeners = null!;
public void AddListener(EventHandler listener) => listeners.Add(listener); public void AddListener(EventHandler listener) => listeners.Add(listener);
public void AddOnceListener(EventHandler listener) => onceListeners.Add(listener); public void AddOnceListener(EventHandler listener) => onceListeners.Add(listener);
@ -70,13 +82,25 @@ public class Event<TSender>(int initialListenerCount = 4, int initialOnceListene
} }
} }
public Event(int initialListenerCount = 4, int initialOnceListenerCount = 2)
{
listeners = new(initialListenerCount);
onceListeners = new(initialOnceListenerCount);
}
public Event()
{
listeners = new(4);
onceListeners = new(2);
}
public delegate void EventHandler(TSender sender); public delegate void EventHandler(TSender sender);
} }
public class Event<TSender, TArguments>(int initialListenerCount = 4, int initialOnceListenerCount = 2) public class Event<TSender, TArguments>
{ {
private readonly List<EventHandler> listeners = new(initialListenerCount); private readonly List<EventHandler> listeners = null!;
private readonly List<EventHandler> onceListeners = new(initialOnceListenerCount); private readonly List<EventHandler> onceListeners = null!;
public void AddListener(EventHandler listener) => listeners.Add(listener); public void AddListener(EventHandler listener) => listeners.Add(listener);
public void AddOnceListener(EventHandler listener) => onceListeners.Add(listener); public void AddOnceListener(EventHandler listener) => onceListeners.Add(listener);
@ -105,5 +129,17 @@ public class Event<TSender, TArguments>(int initialListenerCount = 4, int initia
} }
} }
public Event(int initialListenerCount = 4, int initialOnceListenerCount = 2)
{
listeners = new(initialListenerCount);
onceListeners = new(initialOnceListenerCount);
}
public Event()
{
listeners = new(4);
onceListeners = new(2);
}
public delegate void EventHandler(TSender sender, TArguments args); public delegate void EventHandler(TSender sender, TArguments args);
} }