相关疑难解决方法(0)

C#:没有从Class <Child>到Class <Base>的转换

以下代码片段无法编译.出现以下错误:

无法将类型'Container <ChildClass>'隐式转换为'Container <BaseClass>'

class BaseClass {}
class ChildClass : BaseClass {}
class Container<T> where T : BaseClass {}
class Program {
    static void Main() {
        // why doesn't this work?
        Container<BaseClass> obj = new Container<ChildClass>(); 
    }
}
Run Code Online (Sandbox Code Playgroud)

这是设计的吗?如果是,那是什么原因?

c# generics inheritance language-features language-design

3
推荐指数
1
解决办法
2005
查看次数