相关疑难解决方法(0)

为什么以下不编译?(涉及c#中的泛型和继承)

这编译:

    class ReplicatedBaseType
    {
    }

    class NewType: ReplicatedBaseType
    {
    }

    class Document
    {
    ReplicatedBaseType BaseObject;

    Document()
    {
     BaseObject = new NewType();
    }
}
Run Code Online (Sandbox Code Playgroud)

但这不是:

    class DalBase<T> : where T: ReplicatedBaseType
    {
    }

    class DocumentTemplate
    {
    DalBase<ReplicatedBaseType> BaseCollection;
    DocumentTemplate ()
    {
    BaseCollection= new DalBase<NewType>(); // Error in this line. It seems this is not possible
    }
    }
Run Code Online (Sandbox Code Playgroud)

什么原因?

.net c# generics

3
推荐指数
2
解决办法
224
查看次数

标签 统计

.net ×1

c# ×1

generics ×1