读详谈泛型

1,什么是泛型?
答:泛型是类型的模板,类型是实例(对象)的模板。C#提供了5种泛型:类,接口,委托,结构和方法。

2,使用泛型有什么好处?
答:继承实现的是"代码重用",而泛型实现的是另一种形式的代码重用,即"算法重用"。总结起来有以下优点:
1> 提高代码的可重用性。
2> 编译时的类型安全性。当使用一个不兼容的类型的时候,会在编译时就报错,而不用等到运行时再报错,提高了类型安全性。
3> 更佳的性能。当操作值类型实例的时候,使用泛型会减少值类型的装箱,这样在程序的托管堆上内存分配更少,垃圾回收也没那么频繁,从而能提高程序的性能。

使用泛型类实例

下面是一个使用泛型来实现栈的实例,Main方法定义了两个变量,stackInt和stackString。使用int和string作为类型实参来创建这两个构造类型的实例(对象)。代码如下:

                      T[] StackArray;          
                                                                                                
                                         StackArray[StackPointer++] =   
                         
                       StackArray=  
                       ; i >= ; i--                  Console.WriteLine(    
                                           
             stackInt.Push();             stackInt.Push(             stackInt.Push(  
             stackString.Push(             stackString.Push(  
  
   }

程序输出结果为:

读详谈泛型

更多相关文章
  • Template的出现大大改变了C++的编程方式,甚至在传统的面向对象编程方式的基础上派生出了泛型编程方式.简单的理解泛型,可以看成是以平行级别的类(相对于继承来说)对代码依照算法逻辑进行复用.比如有一个template <class Type> A.当你分别使用A<int> ...
  • .NET泛型解析(上)
    [1]:泛型介绍泛型是C#2.0中一个重要的新特性,泛型是CLR和编程语言提供的一种特殊机制,它支持另一种形式的代码重用.泛型诞生之前:C#是一种强类型的语言,在没有泛型没有被提出之前,我们在使用集合的代码的时候,每次对其进行转换都需要隐式的强制转换,我们都知道所有对象的最终基类是object,我们 ...
  • 容器使用的12条军规--<Effective+STL中文版>试读还记的自己早年在学校学习c++的时候,老师根本就没有讲STL,导致了自己后来跟人说 起会C++的时候总是被鄙视,后来就下定决心一定要搞定STL.但是说实话,后来学了STL之后,我还是没有能够把它运用好,有的时候觉得STL太好 ...
  • 朋友也问过我,一些基础的东西学完了,如何进一步的成长,该学习哪些书呢?如果没有读过计算机专业的基础课程,那么计算机基础课程是一定要学习的.1.数据结构.离散数学.操作系统.编译原理这四门课学习完.数据结构和操作系统两门课程一定要细心学习,这个是基础理论.特别是数据结构,建议学习严蔚敏_吴伟民的< ...
  • 之前的博文中我们搭建了一个基本的开发环境,现在让我们给这个项目加上CRUD和基本的单元测试.1.创建泛型DAO的相关类在src\main\java\com\ceair\app\dao下创建GenericDao.java(APPFUSE2中的代码),代码内容如下:package com.ceair.a ...
  • #技术晨读# 浅谈Heatmap 怎么通过js,做打点,然后渲染出热点图,就和GA一样的那个玩意... http://huoding.com/2011/01/04/39 #技术晨读# Jquery插件库 刚开工,水一下,感觉很酷的jquey插件库 http://www.jq22.com/ #技术X读 ...
  • C++泛型算法
     <C++ Primer 4th>读书笔记 标准容器(the standard container)定义了很少的操作.标准库并没有为每种容器类型都定义实现这些操作的成员函数,而是定义了一组泛型算法:因为它们实现共同的操作,所以称之为“算法”:而“泛型”指的是它们可以操作在多种容器类型上— ...
  • 最近又熟悉了下go语言,发现go语言还有许多设计不好的地方,然后又读到了<我为什么放弃Go语言>这篇文章, 对于某些方面,我还是比较认同的.  这篇文章总结了十六点,如下: 1.1 不允许左花括号另起一行 1.2 编译器莫名其妙地给行尾加上分号 1.3 极度强调编译速度,不惜放弃本应提供 ...
一周排行
  • dz993013@bkj0d101# ./cs 10 | grep ZLF07A 2016/03/16,ZLF07A,Backup (full),Tue Mar 1 5 2016,Tue Mar ...
  • Scala入门第一天
    1.函数的定义package com.dt.scala.helloobject Hello ...
  •     通过最近监控发现,使用第三方Cdn公司的带宽偏高.由于最近没有增加新的业务.感觉其中肯定有问题.按照我们的Cahe架构,用户首先到我们自建Cache节点获取数据,如果该区域没有我们的节点,会去第三方节点进行取 ...
  • 文件/目录权限设置命令:chmod这是Linux系统管理员最常用到的命令之一,它用于改变文件或目录的访问权限.该命令有两种用法: 用包含字母和操作符表达式的文字设定法 ) 其语法格式为:chmod [who] [op ...
  • 表格其实和 div+css 一样优秀.所谓的"浏览快慢"其实是在带宽有限的情况下,由于需要等待载入时间,而表现出的快慢.表格的特性是:只有在表格体内的内容全部载入完后,才一次性显示该表格.因为,当 ...
  • OSSEC 安装详解简介写在前面的话,网上能够找到一些关于ossec方面的资料,虽然很少,但是总比没有强,不过在实际的使用过程中还是会碰到许多稀奇古怪的问题.整理整理我的使用过程,就当做一篇笔记吧.PS:本文填了很多 ...
  • 之前公司的技术人员给配置过虚拟机的IP,这次服务器维护完,再放到服务器的时候,尽然连不上去此IP.最后才发现设置的虚拟机自动连接第一个网卡,但是服务器有两个网卡,经检测才发现,服务器给设置外网IP 尽然用的第二个网卡 ...
  • varnish及其应用
    Varnish是一款高性能的开源HTTP缓存加速器,从下图(网站拓扑结构视图)不难看出,缓 ...
  • 各种识别软件对电子图书馆文章的识别各有缺陷,有的只能识别字,对表格和图形无能为力:有的识别后生成的版面乱七八糟,无 法使用.还在为不同格式的文件怎么变成Word文件发愁吗?现在好了,本文给出了所有情况下全文件表格.图 ...
  • 抢先体验百度文件搜索功能 提到鼎鼎大名的"百度"国内应该无人不知,无人不晓吧,百度家族出来了很多的产品,像大家经常用的MP3搜索,网页搜索,图片搜索---..这些大家都能熟悉的运用了吧.但是今天给 ...