zoukankan      html  css  js  c++  java
  • 泛型

    1.编程思想

       延迟声明:把参数类型的声明推迟到调用。这不是语法糖,而是由框架升级提供的功能。

       由此延伸出来的一个架构设计的思想:推迟一切可以推迟的东西。

    2.语言转换

        高级语言=》中间语言(IL)=>运行时,即时编译器(GIT)将中间语言转为二进制机器码。

    3.泛型的性能问题

       泛型不会影响性能。因为1.泛型不会产生装箱拆箱的问题。2.泛型是在二进制机器码执行器在git里面进行类型解析替换的,将泛型方法转为普通方法了。所以泛型方法性能=普通方法》object类型参数的方法。

    4.泛型方法使用时可以不传入类型,编译器可以自动推断。

    5.应用场景:为了代码的复用。不用每个类型都写一遍。通用方法一般都用泛型。泛型既可以做参数也可以做返回值。泛型一切目标都是为了解决相同逻辑不同类型的问题。提高代码复用、提高效率。

    6.泛型类、泛型方法、泛型接口、泛型委托。

    7.拓展:子类构造方法默认调用父类的构造无参构造方法。除非制定以下:base("")。

    8.泛型约束:

      可以是多重的(并的关系)、复合的。父类约束只能一个,接口约束可以多个。因为c#中只能单继承但是可以多实现。

       8.1加了基类泛型约束,其实也是相当于给T指定了类型,在泛型方法内可以直接使用积累的属性和方法。比如 where T:People 表示T一定是People的子类,比如People有 Name Age的属性,就可以通过T的实例直接进行调用了。

       8.2接口泛型约束:泛型类型必须实现该接口

       8.3无参构造约束: Where t:new() 泛型必须具有一个无参构造函数

       8.4引用类型约束:Where T:class

       8.5值类型约束:Where T:struct

    9.拓展关键字  default(T)  返回一个类型对应的默认值。如果是int 则返回0 如果是bool 则返回false。

  • 相关阅读:
    访问修饰符、封装、继承
    面向对象与类
    内置对象
    三级联动 控件及JS简单使用
    asp。net简单的登录(不完整)
    asp。net:html的表单元素:
    ASP.Net简介及IIS服务器及Repeater
    用户控件
    登陆,激活,权限
    timer控件,简单通讯
  • 原文地址:https://www.cnblogs.com/chenxizhaolu/p/6896398.html
Copyright © 2011-2022 走看看