Ich versuche, eine einfache Objektwiederverwendungsklasse zu erstellen
public class ObjectPool where T : class, IRecyclable, new()
{
}
Ich möchte es mit meinem Interface verwenden können:
public interface ISomeInterface : IRecyclable
{
}
ObjectPool pool = new ObjectPool();
Aber das führt zu dem Fehler:
Error CS0310: Der Typ "ISomeInterface" muss über einen öffentlichen parameterlosen Konstruktor verfügen, um ihn als Parameter "T" im generischen Typ oder in der generischen Methode "ObjectPool" verwenden zu können.
Basierend auf dem, was ich online gelesen habe, weiß ich, dass ich keinen Konstruktor in einem Interface angeben kann.
Ich habe gelesen, dass Sie stattdessen Reflexion verwenden können, um eine neue Instanz zu erstellen, obwohl ich mir über die Geschwindigkeit bei der Ausführung dieser Instanziierung Sorgen mache.
Was ist der richtige Weg, um diese Situation zu lösen? Gibt es eine einfachere Lösung, die ich komplett übersehe?