泛型通俗的理解 就是限制list集合里面的数据类型 比如List<int>
就限制LIST里面必须是int,这样放入其他就有报错(保证了安全),然后从
list里取元素,就不需要强制转化成int了

还可以理解为 使用数据类型做为参数

关于object类型:
1.object类型可以来引用任何类型的实例;
2.object类型可以存储任何类型的值;
3.可以定义object类型的参数;
4.可以把object作为返回类型。
但是--这样做有很大的问题

1.会因为程序员没有记住使用的类型而出错,造成类型不兼容;
2.值类型和引用类型的互化即装箱拆箱使系统性能下降。

C#2.0提出的泛型就是避免强制类型转换,减少装箱拆箱提高性能,减少错误。

System.Collections.Generic命名空间提供许多集合类和接口的泛型版本。

定义:
public class GenericList<T>
{
    public void Add(T input)//T制定成类型参数
    public T Add()//T制定成返回值
}
<T>的T是类型参数,起占位符的作用,编译时被真正类型取代

使用泛型:
GenericList<int> list1 = new GenericList<int>();
GenericList<string> list2 = new GenericList<string>();
GenericList<类名> list3 = new GenericList<类名>();
GenericList<类名<int>> list4= new GenericList<类名<int>>();
以list1为例编译器生成以下的方法:
    public void Add(int input)
    public int Add()

有多个类型参数的泛型类:
public class 类名<T,U>

泛型约束:
确保泛型类使用的参数是提供特定方法的类型。
public class GenericList<T> where T : IEmployee
假如IEmployee接口包含A方法,编译器会验证用于替换T的类型一定要实现IEmployee接口。

泛型方法:允许采取定义泛型类时采用的方式

//定义泛型方法static void Swap<T>(ref T lhs, ref T rhs)

{ T temp; temp = lhs; lhs = rhs; rhs = temp; }
//使用泛型方法

public static void TestSwap(){    int a=1,b=3;Swap<int>(ref a,ref b);
string s1="Hello",s2="world";Swap<string>(ref s1,ref s2);}
有泛型类,泛型接口,泛型方法,泛型委托

转载于:https://www.cnblogs.com/xiangziyanhuang/archive/2011/02/15/1955635.html

c# 泛型有什么作用?相关推荐

  1. java dao 泛型的好处_java中泛型有什么作用

    泛型的作用如下: 1.类型安全 泛型的主要目标是提高 Java 程序的类型安全.编译时的强类型检查:通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设.没有泛型,这些假设 ...

  2. Java泛型概念及作用

    1.泛型的引入 1.1.创建多个文件,给每个类中的成员变量设置指定的数据类型 缺点:这种方式会导致类的膨胀,重用性太差 1.2.创建一个类文件,给这个类中的成员变量设置Object数据类型 缺点:编译 ...

  3. java 泛型 问号_Java中泛型 问号的作用

    这是jdk1.5泛型的典型应用: 第一种写法,叫做使用泛型方法: public void thisIsT(List list){ //... } 当然还可以这样写: public void thisI ...

  4. 什么是抽象类?抽象类的作用_揭秘!Java 泛型背后到底是什么?

    作者:的一幕 链接:www.jianshu.com/p/dd34211f2565 这一节主要讲的内容是java中泛型的应用,通过该篇让大家更好地理解泛型,以及面试中经常说的泛型类型擦除是什么概念,今天 ...

  5. 泛型类有什么作用_3 分钟带你彻底搞懂 Java 泛型背后的秘密

    优质文章,及时送达 作者 | 的一幕 来源 | www.jianshu.com/p/dd34211f2565 这一节主要讲的内容是java中泛型的应用,通过该篇让大家更好地理解泛型,以及面试中经常说的 ...

  6. java 泛型使用场景_泛型的使用场景,可以作用在什么位置,使用泛型有什么好处...

    1.什么是泛型,泛型有什么用,为什么要用 1.1 泛型就是一种未知的类,将未知的类型声明在集合.对象上,泛型的默认类型为Object. 例如: ArrayList str = new ArrayLis ...

  7. java泛型方法作用_java泛型的作用与使用方法是什么?

    泛型,即"参数化类型".一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参.那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变 ...

  8. .NET泛型解析(下)

    上一篇对.NET中的泛型进行了详细的介绍以及使用泛型的好处是什么,这篇将更加深入的去了解泛型的其他的知识点,重头戏. [1]泛型方法 上一篇我们也说过了,泛型可以是类,结构,接口,在这些泛型类型中定义 ...

  9. Java泛型背后是什么?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:的一幕 www.jianshu.com/p/dd34211f ...

最新文章

  1. Go 学习笔记(71)— Go 接口 interface (接口定义、接口实现、接口调用、值接收者、指针接收者)
  2. Openfiler 2.3配置及Win2k8 iSCSI应用系列之二
  3. 【前端词典】和媳妇讲代理后的意外收获
  4. 捞人宝估值数亿,已捞出数位大佬,商业模式已验证!
  5. android studio logcat 无筛选 显示全部日志 无应用包名区分
  6. jpa获取数据库当前时间_SpringDataJPA存储数据时通过注解自动设置创建时间和修改时间...
  7. 在生产服务器上要注意dbgsvc.exe
  8. redis 分布式锁 看门狗_redis分布式锁原理及实现
  9. 作为互联网面临的最大危险之一,当前的 DDoS 趋势如何?
  10. PHP初级练习实战之公司留言板(原生)
  11. easypanel面板搭建虚拟主机教程
  12. VMD常用命令(转载)
  13. Gsensor的驱动流程 -- 基于IIC
  14. Polygon已在测试网中实现EIP-1559
  15. Linux系统如何安装Python?新手教程
  16. 大公司研发部门普遍存在的问题(日常吐槽)
  17. 快速理解iaas/pass/sass
  18. 企业中多分支多人协作的git工作流程
  19. 计算机考研845大纲,2017年西北工业大学845电路基础考研大纲
  20. Android手机吞吐率测试方法记录

热门文章

  1. 协方差特征 image feature 二阶pooling + ECCV12
  2. 【Python-ML】集成多数投票分类器-训练评估调优
  3. Linux命令free解读
  4. 数据结构源码笔记(C语言):Huffman树字符编码
  5. NS安装问题收集(2)
  6. Python 技术篇-index()字符串倒叙匹配获取索引,字符串切片反向输出,逆向输出字符串
  7. 基于51单片机的高频频率计的设计
  8. [YTU]_2803( 字符串中小写改大写)
  9. logspace--创建对数等分向量
  10. Factorial Trailing Zeroes