Я пытался это, но я не могу понять это. Я хочу сделать это ...
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
имеет много другой логики, не связанной с вопросом, поэтому он был опущен сосредоточиться на вопросе под рукой.