深入浅出asp.NET泛型编程.NET泛型编程入门教程(1/9)

前言

  .net 2.0中泛型的出现是一个令人激动的特征。但是,什么是泛型?你需要它们吗?你会在自己的应用软件中使用它们?在本文中,我们将回答这些问题并细致地分析泛型的使用,能力及其局限性。

  类型安全

  .net中的许多语言如c#,c++和vb.net(选项strict为on)都是强类型语言。作为一个程序员,当你使用这些语言时,总会期望编译器进行类型安全的检查。例如,如果你把对一个book类型的引用转换成一个vehicle型的引用,编译器将告诉你这样的cast是无效的。

  然而,当谈到.net 1.0和1.1中的集合时,它们是无助于类型安全的。请考虑一个arraylist的例子,它拥有一个对象集合--这允许你把任何类型的对象放于该arraylist中。让我们看一下例1中的代码。

  例1.缺乏类型安全的arraylist

using system;
using system.collections;
namespace testapp
{
 class test
 {
  [stathread]
  static void main(string[] args)
  {
   arraylist list = new arraylist();
   list.add(3);
   list.add(4);
   //list.add(5.0);
   int total = 0;
   foreach(int val in list)
   {
    total = total + val;
   }
   console.writeline("total is {0}", total);
  }
 }
}

  本例中,我们建立了一个arraylist的实例,并把3和4添加给它。然后我循环遍历该arraylist,从中取出整型值然后把它们相加。这个程序将产生结果"total is 7"。现在,如果我注释掉下面这句:

list.add(5.0);

  程序将产生如下的运行时刻异常:

unhandled exception: system.invalidcastexception: specified cast is not valid.
attestapp.test.main(string[]args)in :workareatestappclass1.cs:line 17

  哪里出错了呢?记住arraylist拥有一个集合的对象。当你把3加到arraylist上时,你已把值3装箱了。当你循环该列表时,你是把元素拆箱成int型。然而,当你添加值5.0时,你在装箱一个double型值。在第17行,那个double值被拆箱成一个int型。这就是失败的原因。

  注意:上面的实例,如果是用vb.net书写的话,是不会失败的。原因在于,vb.net不使用装箱机制,它激活一个把该double转换成整型的方法。但是,如果arraylist中的值是不能转换成整型的,vb.net代码还会失败。

  作为一个习惯于使用语言提供的类型安全的程序员,你希望这样的问题在编译期间浮出水面,而不是在运行时刻。这正是泛型产生的原因。

  3. 什么是泛型?

  泛型允许你在编译时间实现类型安全。它们允许你创建一个数据结构而不限于一特定的数据类型。然而,当使用该数据结构时,编译器保证它使用的类型与类型安全是相一致的。泛型提供了类型安全,但是没有造成任何性能损失和代码臃肿。在这方面,它们很类似于c++中的模板,不过它们在实现上是很不同的。

首页 1 2 3 4 5 6 7 8 9 末页

时间: 2024-11-14 11:53:55

深入浅出asp.NET泛型编程.NET泛型编程入门教程(1/9)的相关文章

ASP.NET Web API 2 入门教程

译者:jiankunking 出处:http://blog.csdn.net/jiankunking 源码下载 HTTP不仅提供web页面服务,在构建公开服务和数据api方面,它也是一个强大的平台.HTTP简单.灵活.无处不在.几乎你能想到的所有的平台,都有一个HTTP库,因此HTTP服务可以影响到广泛的客户端,包括浏览器.移动设备,和传统的桌面应用程序. ASP.NET Web API是一个基于.NET框架用于构建Web API的框架.在本教程中,您将使用ASP.NET Web API创建一个

ASP小偷(远程数据获取)程序入门教程_小偷/采集

这里所说的"小偷"指的是在asp中运用xml中的xmlhttp组件提供的强大功能,把远程网站上的数据(图片,网页及其他文件)抓取到本地,经过各种处理后显示到页面上或者存储进数据库的一类程序.你可以通过这种小偷程序,完成过去一些似乎完全不可能实现的任务,比如说把某个站的页面偷梁换柱后变成自己的页面,或者把某个站的一些数据(文章,图片)保存到本地数据库中加以利用."小偷"的优点有:无须维护网站,因为小偷程序中的数据来自其他网站,它将随着该网站的更新而更新:可以节省大量的

ASP小偷(远程数据获取)程序入门教程

这里所说的"小偷"指的是在asp中运用xml中的xmlhttp组件提供的强大功能,把远程网站上的数据(图片,网页及其他文件)抓取到本地,经过各种处理后显示到页面上或者存储进数据库的一类程序.你可以通过这种小偷程序,完成过去一些似乎完全不可能实现的任务,比如说把某个站的页面偷梁换柱后变成自己的页面,或者把某个站的一些数据(文章,图片)保存到本地数据库中加以利用."小偷"的优点有:无须维护网站,因为小偷程序中的数据来自其他网站,它将随着该网站的更新而更新:可以节省大量的

ASP小偷(远程数据获取)程序的入门教程

程序|教程|入门教程|数据|入门教程 这里所说的"小偷"指的是在ASP中运用XML中的XMLHTTP组件提供的强大功能,把远程网站上的数据(图片,网页及其他文件)抓取到本地,经过各种处理后显示到页面上或者存储进数据库的一类程序.你可以通过这种小偷程序,完成过去一些似乎完全不可能实现的任务,比如说把某个站的页面偷梁换柱后变成自己的页面,或者把某个站的一些数据(文章,图片)保存到本地数据库中加以利用."小偷"的优点有:无须维护网站,因为小偷程序中的数据来自其他网站,它将

ASP小偷程序的入门教程(远程数据获取)

程序|教程|入门教程|数据|小偷程序 这里所说的"小偷"指的是在ASP中运用XML中的XMLHTTP组件提供的强大功能,把远程网站上的数据(图片,网页及其他文件)抓取到本地,经过各种处理后显示到页面上或者存储进数据库的一类程序.你可以通过这种小偷程序,完成过去一些似乎完全不可能实现的任务,比如说把某个站的页面偷梁换柱后变成自己的页面,或者把某个站的一些数据(文章,图片)保存到本地数据库中加以利用."小偷"的优点有:无须维护网站,因为小偷程序中的数据来自其他网站,它将

ASP基础入门教程(1)

教程|入门教程 一 什么是Asp Asp是Active Server Pages的缩写,它包含了三个方面的内容 1 Active Active指的是ActiveX技术,这个技术采用封装对象,程序调用对象等方法简化了编程,从而使我们可以很容易的快速建立Web应用; 2 Server Server指Asp程序在服务器上运行 3 Pages Pages指的是返回标准的html页面 Asp是一种用于取代CGI的,功能强大的,简单易学的动态网页技术 二 什么是静态网页 静态网页指的是只有html标记构成的

ASP小偷(远程数据获取)程序的入门教程 选择自 arcow 的 Blog

程序|教程|入门教程|数据|入门教程 这里所说的"小偷"指的是在ASP中运用XML中的XMLHTTP组件提供的强大功能,把远程网站上的数据(图片,网页及其他文件)抓取到本地,经过各种处理后显示到页面上或者存储进数据库的一类程序.你可以通过这种小偷程序,完成过去一些似乎完全不可能实现的任务,比如说把某个站的页面偷梁换柱后变成自己的页面,或者把某个站的一些数据(文章,图片)保存到本地数据库中加以利用."小偷"的优点有:无须维护网站,因为小偷程序中的数据来自其他网站,它将

ASP入门教程 1小时ASP入门,非常简单

教程|入门教程|入门教程 <% 语句 -- %><2>定义变量dim语句<% dim a,b a=10 b="ok!"%>注意:定义的变量可以是数值型,也可以是字符或者其他类型的<3>简单的控制流程语句 1. If 条件1 then 语句1elseif 条件2 then 语句2else 语句3endif2.while 条件 语句 wend3.for count=1 to n step m 语句1 exit for 语句2next 二.AS

远程数据获取之ASP小偷程序的入门教程

程序|教程|入门教程|数据|小偷程序 这里所说的"小偷"指的是在ASP中运用XML中的XMLHTTP组件提供的强大功能,把远程网站上的数据(图片,网页及其他文件)抓取到本地,经过各种处理后显示到页面上或者存储进数据库的一类程序.你可以通过这种小偷程序,完成过去一些似乎完全不可能实现的任务,比如说把某个站的页面偷梁换柱后变成自己的页面,或者把某个站的一些数据(文章,图片)保存到本地数据库中加以利用."小偷"的优点有:无须维护网站,因为小偷程序中的数据来自其他网站,它将

入门教程:ASP设计常见问题及解答精要

教程|解答|入门教程|设计|问题 作为微软推出的网页与数据库解决方案,ASP由于有微软得天独厚的操作系统等技术后盾支持,因此得到了迅速的发展,并且正受到越来越多的欢迎,在目前在电子商务网站的建设中有很多都使用ASP来编写程序. 近来有很多的读者向我们咨询学习ASP的方法和在学习中遇到的一些问题,其中有一些是初学者经常遇到和面临的问题.为了让读者在学习ASP的过程中加深对ASP的了解,并能够有效地解决遇到的问题,我们特别收集了比较有代表性的一些问题,在此列举出来并一一给予解答,希望能在这有限的篇幅