不能从基类继承

Roh*_*hit 0 c# inheritance

我的代码如下

class BaseClass<T> where T : class
{
    class DerivedClass<U, V>
        where U : class
        where V : U
    {
        BaseClass<V> _base;
    }

}
Run Code Online (Sandbox Code Playgroud)

错误:类型"V"必须是引用类型.

这里的类型类不是'V'吗?

Ric*_*ett 6

您可以通过向type参数添加class约束来解决此问题V:

class BaseClass<T> where T : class
{
    class DerivedClass<U, V>
        where U : class
        where V : class, U
    {
        BaseClass<V> _base;
    }
}
Run Code Online (Sandbox Code Playgroud)

有关解释,请参阅Eric Lippert的文章(由Willem van Rumpt评论).