泛型约束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+"\t"+ting);          

  Console.ReadKey();     

    }   

  }

}

转载于:https://www.cnblogs.com/kexb/p/3651856.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值