zoukankan      html  css  js  c++  java
  • C# 泛型

       泛型是C#2.0推出的新语法,不是语法糖,而是2.0由框架升级提供的功能。 

       所谓泛型,即通过参数化类型来实现在同一份代码上操作多种数据类型。

     示例下载

        //1 引入泛型:延迟声明
        //2 如何声明和使用泛型
        //3 泛型的好处和原理
        //4 泛型类、泛型方法、泛型接口、泛型委托
        //5 泛型约束
        //6 协变 逆变
        //7 泛型缓存

    一 、泛型方法的使用

    二、泛型类,泛型接口,泛型委托(Action,Func)

     

    三、 泛型约束

    T:结构

    类型参数必须是值类型。可以指定除 Nullable 以外的任何值类型。有关更多信息,请参见使用可空类型(C# 编程指南)。

    T:类

    类型参数必须是引用类型,包括任何类、接口、委托或数组类型。

    T:new()

    类型参数必须具有无参数的公共构造函数。当与其他约束一起使用时,new() 约束必须最后指定。

    T:<基类名>

    类型参数必须是指定的基类或派生自指定的基类。

    T:<接口名称>

    类型参数必须是指定的接口或实现指定的接口。可以指定多个接口约束。约束接口也可以是泛型的。

    T:U

    为 T 提供的类型参数必须是为 U 提供的参数或派生自为 U 提供的参数。这称为裸类型约束。

    四、泛型继承约束

     

    五、初识泛型缓存

     一般类的静态构造函数,一个  类型   只初始化一次,而且常驻内存。 泛型类的静态构造函数,每个不同的T,都是生成一份不同的副本类,相同的T只会初始化一次。从上图输出结果可以看出,除了第一次循环需要实际计算外,其余的循环都是取得第一次的值,也就是 再次实例化泛型类时 ,相同的T静态构造函数只执行一次。这就是泛型缓存。

  • 相关阅读:
    ios中的XMPP简介
    iOS项目开发中的目录结构
    ios中怎么样点击背景退出键盘
    ios中怎么处理键盘挡住输入框
    ios中怎么样调节占位文字与字体大小在同一高度
    ios中怎么样设置drawRect方法中绘图的位置
    ios中用drawRect方法绘图的时候设置颜色
    字符串常见操作
    字典、列表、元组
    字符串查看及应用
  • 原文地址:https://www.cnblogs.com/ZeedLee/p/10631600.html
Copyright © 2011-2022 走看看