2006-08-07

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

来源: CSDN 作者:shadow 评论 0 条
 public Stack(int i)
 {
  this.m_item = new int[i];
 }
}
  上面代码运行的很好,但是,当我们需要一个栈来保存string类型时,该怎么办呢?很多人都会想到把上面的代码复制一份,把int改成string不就行了。当然,这样做本身是没有任何问题的,但一个优秀的程序是不会这样做的,因为他想到若以后再需要longNode类型的栈该怎样做呢?还要再复制吗?优秀的程序员会想到用一个通用的数据类型object来实现这个栈:
public class Stack
{
 private object[] m_item;
 public object Pop(){...}
 public void Push(object item){...}
 public Stack(int i)
 {
  this.m_item = new[i];
 }
}
  这个栈写的不错,他非常灵活,可以接收任何数据类型,可以说是一劳永逸。但全面地讲,也不是没有缺陷的,主要表现在:
  当Stack处理值类型时,会出现装箱、折箱操作,这将在托管堆上分配和回收大量的变量,若数据量大,则性能损失非常严重。
共12页: 上一页 [1] 2 [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] 下一页
(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:JSP/Servlet的重定向技术综述  
下一篇:C#结合串口通信类实现串口通信源代码
    评论加载中…
 推荐文章
     

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