Why does the following doesn't compile? (involves generics and inheritance in c#)

前端 未结 5 1714
野趣味
野趣味 2020-12-21 06:31

This compiles:

    class ReplicatedBaseType
    {
    }

    class NewType: ReplicatedBaseType
    {
    }

    class Document
    {
    ReplicatedBas         


        
5条回答
  •  情书的邮戳
    2020-12-21 07:16

    This code compiles in VS2010, net framework 4

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication2
    {
        class ReplicatedBaseType
        {
        }
    
        class NewType : ReplicatedBaseType
        {
        }
    
        class Document
        {
            ReplicatedBaseType BaseObject;
    
            Document()
            {
                BaseObject = new NewType();
            }
        }
        interface DalBase  where T: ReplicatedBaseType
        {
        }
    
        class DalBaseExample : DalBase where T: ReplicatedBaseType
        {
    
        }
        class DocumentTemplate
        {
            DalBase BaseType;
            DocumentTemplate ()
            {
                BaseType = new DalBaseExample(); // no error here
            }
        }
    
        class Program
        {
            static void Main(string[] args)
            {
            }
        }
    }
    

提交回复
热议问题