相关疑难解决方法(0)

在C#4.0中,是否可以从泛型类型参数派生类?

我一直在尝试这个,但我似乎无法解决这个问题.我想做这个...

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());
}
Run Code Online (Sandbox Code Playgroud)

计划是像这样使用它,它可以在基类周围"包裹"单例模式......

public class SingletonFoo : SingletonType<SingletonFoo, Foo> {
}
Run Code Online (Sandbox Code Playgroud)

但是,我一直这样做

无法从'TBaseClass'派生,因为它是一个类型参数

嗯...我想类型为你到底是什么的派生!

那我错过了什么?

注意:这当然是一个简单的例子,因为它没有添加任何有用的东西,但是假设SingletonType有许多其他逻辑与问题无关,因此忽略了关注手头的问题.

c# generics inheritance subclass derived-class

24
推荐指数
2
解决办法
1万
查看次数

标签 统计

c# ×1

derived-class ×1

generics ×1

inheritance ×1

subclass ×1