2006-08-07

C# 2.0中泛型编程思想分析

来源: CSDN 作者:shadow 评论 0 条
 
在处理引用类型时,虽然没有装箱和折箱操作,但将用到数据类型的强制转换操作,增加处理器的负担。
  在数据类型的强制转换上还有更严重的问题(假设stackStack的一个实例):
Node1 x = new Node1();
stack.Push(x);
Node2 y = (Node2)stack.Pop();
  上面的代码在编译时是完全没问题的,但由于Push了一个Node1类型的数据,但在Pop时却要求转换为Node2类型,这将出现程序运行时的类型转换异常,但却逃离了编译器的检查。
  针对object类型栈的问题,我们引入泛型,他可以优雅地解决这些问题。泛型用用一个通过的数据类型T来代替object,在类实例化时指定T的类型,运行时(Runtime)自动编译为本地代码,运行效率和代码质量都有很大提高,并且保证数据类型安全。
  使用泛型
  下面是用泛型来重写上面的栈,用一个通用的数据类型T来作为一个占位符,等待在实例化时用一个实际的类型来代替。让我们来看看泛型的威力:
public class Stack<T>
{
 private T[] m_item;
 public T Pop(){...}
共12页: 上一页 [1] [2] 3 [4] [5] [6] [7] [8] [9] [10] [11] [12] 下一页
(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:JSP/Servlet的重定向技术综述  
下一篇:C#结合串口通信类实现串口通信源代码
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号