泛型总结

1、引入泛型:延迟声明,即在声明的时候没有指定参数类型,只有当调用的时候才会确定 其参数类型(架构师的理念:推迟一切可以推迟的)

2、如何声明和使用泛型

3、泛型的好处和原理

4、泛型类、泛型方法、泛型委托、泛型接口

5、泛型约束

6、协变、逆变(选修)

7、Typeof()和GetType()的区别:Typeof(类名).Name:获取类的名称;参数名称.GetType().Name: 获取参数的名称(疑问)

8、编译的时候,泛型类型参数编译为占位符;程序运行的时候,jit即时编译替换为真实类 型。

9、为什么要有泛型:有相同的逻辑,不确定参数类型时,实现代码的重用,又解决性能的 问题

10、

11、做依赖注入时,用泛型方法会比泛型类简单点。

12、约束有:基类约束、接口约束,也可以多个一起约束,是与(&&)的关系

13、约束类型共有5种,除了类约束、接口约束,还有:值类型约束、引用类型约束、无参数构造函数约束,默认返回值都可以

成:return default(T);

只有约束为无参数构造函数约束时,才可以:T t=new T();

14、协变和逆变只能出现在接口或者委托

int:逆变,只能是参数传入

out:协变,只能是返回值传出

实例:

说明:Sparrow类继承自Bird类

协变、逆变的用处体现有:Func委托,如Func<int,out>...

15、泛型缓存:

(.NET高级课程笔记)泛型总结的更多相关文章

  1. (.NET高级课程笔记)委托、事件总结

      1.委托的声明.实例化和调用 同样的,也可以把事务写成上面的形式 2.泛型委托---Func.Action 3.委托的意义:解耦 4.委托的意义:异步多线程 5.委托的意义:多播委托 6.观察者模 ...

  2. (.NET高级课程笔记)Lambd、Linq总结

    知识总结 1.委托简介:委托是一种类型,可以写在类里,也可以写在类外面,级别和类一样高. 2.匿名方法.匿名类 3.Lambda表达式:goes to 4.系统自带委托:Func/Action 5.扩 ...

  3. (.NET高级课程笔记)反射总结

    反射总结 1.dll-IL-matadata-反射 2.反射加载dll,获取module.类.方法.特性 3.反射创建对象:反射+简单工厂+配置文件 4.反射调用实例方法.静态方法.重载方法.私有方法 ...

  4. Andrew 机器学习课程笔记

    Andrew 机器学习课程笔记 完成 Andrew 的课程结束至今已有一段时间,课程介绍深入浅出,很好的解释了模型的基本原理以及应用.在我看来这是个很好的入门视频,他老人家现在又出了一门 deep l ...

  5. Andrew Ng机器学习课程笔记(四)之神经网络

    Andrew Ng机器学习课程笔记(四)之神经网络 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7365730.html 前言 ...

  6. css笔记 - 张鑫旭css课程笔记之 float 篇

    https://www.imooc.com/t/197450float float的设计初衷/原本作用-是为了实现文字环绕效果如,一个图片和一段文字垂直放置,给图片加上浮动,文字就环绕图片展示了. 浮 ...

  7. ng-深度学习-课程笔记-0: 概述

    课程概述 这是一个专项课程(Specialization),包含5个独立的课程,学习这门课程后做了相关的笔记记录. (1) 神经网络和深度学习 (2)  改善深层神经网络:超参数调试,正则化,优化 ( ...

  8. CS231n课程笔记翻译1:Python Numpy教程

    译者注:本文智能单元首发,翻译自斯坦福CS231n课程笔记Python Numpy Tutorial,由课程教师Andrej Karpathy授权进行翻译.本篇教程由杜客翻译完成,Flood Sung ...

  9. vue—你必须知道的 js数据类型 前端学习 CSS 居中 事件委托和this 让js调试更简单—console AMD && CMD 模式识别课程笔记(一) web攻击 web安全之XSS JSONP && CORS css 定位 react小结

    vue—你必须知道的   目录 更多总结 猛戳这里 属性与方法 语法 计算属性 特殊属性 vue 样式绑定 vue事件处理器 表单控件绑定 父子组件通信 过渡效果 vue经验总结 javascript ...

随机推荐

  1. eclipse向tomcat部署站点发现没有class文件。

    其实大部分解决办法在网上都有的,例如这里: https://blog.csdn.net/shiyuehit/article/details/53262807 eclipse下无法自动编译或编译失败等问 ...

  2. asp+SqlServer2008开发【第一集:安装SqlServer2008以及登陆】

    参考:https://blog.csdn.net/i_likechard/article/details/75299983 1,安装sqlServer2008的具体步骤参考网上其他教程,自己根据注释引 ...

  3. Aspnet Mvc 前后端分离项目手记(三)关于restful 风格Url设计

    RESTful 不是新东西,简单理解它的核心思想就是最大程度的利用http协议的一些特点,比如uri,比如请求动词,在前后端分离的项目中会有大大的好处 ,好的设计的url简单明了,胜过详细的说明文档. ...

  4. CommonJs规范详解---【XUEBIG】

     CommonJS是服务器模块的规范,Node.js采用了这个规范   1.CommonJs规范的出发点:JS没有模块系统.标准库较少.缺乏包管理工具:为了让JS可以在任何地方运行,以达到Java.C ...

  5. JMeter命令模式下动态设置线程组和持续时间等动态传参

    背景: 1.当通过JMeter的图像化界面运行性能压测或者场景时候,JMeter界面很容易导致界面卡死或者无响应的情况(20个线程数就会卡死) 现象如下:

  6. python3 excel文件的读与写

    from openpyxl import load_workbook class RwExcelFile: def read_Excel(self,file_path): ''' 读取excel中所有 ...

  7. JavaScript(四)

    条件语句 通过条件来控制程序的走向,就需要用到条件语句. 运算符 1.算术运算符: +(加). -(减). *(乘). /(除). %(求余)2.赋值运算符:=. +=. -=. *=. /=. %= ...

  8. JavaScript的几种克隆(clone)方式【转】

    一:在Javascript里,如果克隆对象是基本类型,我们直接赋值就可以了: var sStr = "kingwell"; var cStr = sStr; alert(cStr) ...

  9. Linux内核笔记:epoll实现原理(一)

    一.说明 针对的内核版本为4.4.10. 本文只是我自己看源码的简单笔记,如果想了解epoll的实现,强烈推荐下面的文章: The Implementation of epoll(1) The Imp ...

  10. HTML入门9

    这一篇着眼于HTML里的音频和视频标签及相关处理: 传统技术不能再web中使用音频和视频,一致使用Flash后来因为一些HTML/CSS特性,安全问题,慢慢退出.在HTML5提出后,新特性<vi ...