Я пытался это, но я не могу понять это. Я хочу сделать это...
public abstract class SingletonType<TSingleton, TBaseClass> : TBaseClass
where TSingleton : TBaseClass, new()
where TBaseClass : class
{
static TSingleton _singleton;
public static TSingleton Singleton
=> _singleton ?? (_singleton = new TSingleton());
}
План состоял в том, чтобы использовать его так, чтобы он как бы "оборачивал" шаблон синглтона вокруг базового класса...
public class SingletonFoo : SingletonType<SingletonFoo, Foo> {
}
Тем не менее, я продолжаю получать это
Не может быть получен из TBaseClass, потому что это параметр типа
Хм... Я думал, что типы были именно то, что вы делаете из!
Так чего мне не хватает?
Примечание: это, конечно, тривиальный пример, поскольку он не добавляет ничего полезного, но предположим, что в SingletonType
есть много другой логики, не связанной с вопросом, поэтому он был опущен, чтобы сосредоточиться на данном вопросе.