zoukankan      html  css  js  c++  java
  • 泛型限制

    主要的约束类型如下:(如果按照约束实例化类,编译不能通过)
     1    ////T必须是值类型
     2     //public class MyClass<T> where T:struct
     3     //{
     4 
     5     //}
     6 
     7     //T必须是引用类型
     8     //public class MyClass<T> where T : class
     9     //{
    10 
    11     //}
    12 
    13     //T必须是Person或者Person的子类
    14     //public class MyClass<T> where T : Person
    15     //{
    16 
    17     //}
    18 
    19 
    20     //T必须是某个接口类型,或者是实现了某个接口的类及其子类 这里的Person实现了某个接口
    21     //public class MyClass<T> where T : Person
    22     //{
    23 
    24     //}
    25 
    26     //T必须是某个类或者其子类,并且有个无参构造函数
    27     //public class MyClass<T> where T : Person,new()
    28     //{
    29 
    30     //}
    31 
    32     //对T没有要求,但是V必须是T的子类或者本身
    33     public class MyClass<T,V> where T : V
    34     {
    35 
    36     }
    View Code

    如何断定同一个类的,不同泛型类型的对象,是不同的数据类型?

    1 public class MyClass<T>
    2     {
    3 
    4     }
    View Code

    上面的泛型类实例化后,怎么断定是不同类型的对象?

    1 //如何判断mc,mc2的数据类型不同?
    2             MyClass<int> mc = new MyClass<int>();
    3 
    4             MyClass<string> mc2 = new MyClass<string>();
    View Code

    反编译后发现,切换到IL语言后,发现他们的数据类型不同,即时编译(JIT)后,数据类型就会显示出来。

  • 相关阅读:
    IO流-----写到输出流
    MyBatis中collection (一对一,一对多)
    POI导出Excel并下载
    篇二:MySQL存储过程
    篇三:访问JSON静态文件
    ajax同步处理(使得JS按顺序执行)
    篇二:JSON解析
    篇一:MySQL中case when then
    乱码问题
    解决spring配置中的bean类型的问题:BeanNotOfRequiredTypeException
  • 原文地址:https://www.cnblogs.com/wesley168/p/6790019.html
Copyright © 2011-2022 走看看