• 学习泛型


    一直没有好好学习泛型,今晚特意好好的学习

    泛型实现了类型参数化!

    通过参数化类型来实现在同一份代码上操作多种数据类型的目的

    struct C<V,U>{}//泛型结构,具有两个泛型参数的V,U,<里面可以包含若干个类型参数>,参数在类中所处的位置,一般都是作为方法的参数类型,返回类型,字段,属性...

    使用泛型是将类的共同行为提取出来,而将变化的部分抽象为类型参数,特别适合于使用同一段代码处理不同的数据类型的场景

    C#中除了泛型类,泛型接口,泛型结构,泛型方法,泛型事件,泛型委托

    在为类型参数添加约束约束之前,类型参数添加约束之前,类型参数将只能访问System.Object类型中的公有方法,如Equals(),GetHashCode()...

    泛型约束写法

    class Luck<T> where T:Suck{....}

    约束类型共有六种

    where T:Class 类型实参必须是引用类型(次序第一)

    where T:struct 类型实参必须是值类型(同上)

    where T:<base class name> 类型实参必须是指定的类或者他的派生类(同上)

    where T:<interface name> 类型实参必须是指定的接口或者实现了该接口的类型,(不限个)

    where T:new() 类型必须有一个无参的构造函数(次序放在最后)

    where T:U 裸类型约束,我觉得这种是冗余的,如果只有一种类型,那么干嘛还用泛型,你说是吧

    where 子句之间没有顺序,where 字句内部有次序要求

    Class One<T>:Base{}    泛型类One<t>继承自非泛型基类Base

    class Two<T>:Base<int>  封闭式构造类型示例

    class Three<T>:Base<T>  开放式构造类型示例

    泛型方法是使用类型参数声明的方法,看来有点想泛型委托,也可以对类型参数应用约束,如下

    publicstaticTResultPring<T,TResult>(T msg)where TResult:new(){...}

  • 相关阅读:
    VC2013一些感受
    第三周 分析程序题
    进度条——持续更新
    怪自己,不怪书
    源程序版本管理软件和项目管理软件
    学习进度条
    个人最终总结
    win8以上windows系统eclipse环境下图片显示乱码问题解决
    黄金点游戏
    编码用命令行执行的C语言词语统计程序
  • 原文地址:https://www.cnblogs.com/crazycxy/p/2598509.html
Copyright © 2020-2023  润新知