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();     

        }   

      }

    }

  • 相关阅读:
    如何根据工单状态判断订单状态
    jquery移除click事件
    mysql字符串相关函数(并与sql server对比)
    bootstrap-table api
    js调用jquery的function函数
    Bootstrap table设置th,td内容水平、垂直居中
    Error:java: 无法访问javax.servlet.Servlet 找不到javax.servlet.Servlet的类文件
    html常用表单元素,按钮
    点击重置按钮,清空表单所有内容
    bootstrap table设置列宽
  • 原文地址:https://www.cnblogs.com/kexb/p/3651858.html
Copyright © 2011-2022 走看看