zoukankan      html  css  js  c++  java
  • 泛型约束where条件的使用(可以通过类型参数动态反射创建实例)

    定义抽象的人类

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;

    namespace ConsoleApplication1

    {   public  abstract class  person

        {

       public abstract  string ting();    public abstract  string shuo();

        }

    }

    定义子类 girl 和boy 类

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;

    namespace ConsoleApplication1 {  

       public class girl : person  

       {

            public override string ting()         {             return "girl ting";         }

            public override string shuo()         {             return "girl shuo";         }  

       }

    }

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;

    namespace ConsoleApplication1 {  

       public class boy: person  

       {

            public override string ting()         {             return "boy ting";         }

            public override string shuo()         {             return "boy shuo";         }  

       }

    }

    定义模具类可以 可以返回一个boy或者girl的实例

    using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks;

    namespace ConsoleApplication1 {

      public  class zhongjian     {    

       public static person CreatePerson<T>() where T:person

          {

            person  p = Activator.CreateInstance(typeof(T)) as person;         return p;        

             }

        }

    }

    模拟环境类 program

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;

    namespace ConsoleApplication1

    {  

       class Program  

       {      

       static void Main(string[] args)      

       {       person p= zhongjian.CreatePerson<girl>();            string shuo= p.shuo();            string ting=  p.ting();            Console.WriteLine(shuo+" "+ting);          

      Console.ReadKey();     

        }   

      }

    }

  • 相关阅读:
    python基础之函数(基础七)
    python基础之文件操作(基础六)
    python基础之数据类型补充(基础五)
    python之深浅拷贝(基础四)
    python基础数据类型之字典(基础三)
    python基础数据类型之列表,元组(基础二)
    python基础入门二
    随笔
    oss 上传照片失败
    mysql 同表查询更新
  • 原文地址:https://www.cnblogs.com/kexb/p/3651858.html
Copyright © 2011-2022 走看看