【C#食谱】【面食】菜单5:用泛型副本替换哈希表
2008-02-26 16:16
429 查看
问题:
你想通过用Hashtable对象的泛型表示来提高你的应用程序的性能。当你发现,结构体或其他数据类型在被保存到Hashtable中时都会发生装箱/拆箱操作时,这是非常急需的。
解决方法:
用更快的泛型类System.Collections.Generic.Dictionary替换所有出现System.Collections.Hashtable类的地方。
下面是一个简单的使用System.Collections.Hashtable对象的示例:
public static void UseNonGenericHashtable()
下面是一个使用System.Collections.Generic.Dictionary<T,U>对象的相似的代码:
public static void UseGenericDictionary()
讨论:
在你的应用程序中,对于Hashtable的简单实现,这个替换应该是非常简单的。但是,有一些事是需要密切关注的。例如,Dictionary类没有实现ICloneable接口,而Hashtable类实现了。所以,各位在使用的时候还是需要根据自己的实际情况做相应的改变。
你想通过用Hashtable对象的泛型表示来提高你的应用程序的性能。当你发现,结构体或其他数据类型在被保存到Hashtable中时都会发生装箱/拆箱操作时,这是非常急需的。
解决方法:
用更快的泛型类System.Collections.Generic.Dictionary替换所有出现System.Collections.Hashtable类的地方。
下面是一个简单的使用System.Collections.Hashtable对象的示例:
public static void UseNonGenericHashtable()
下面是一个使用System.Collections.Generic.Dictionary<T,U>对象的相似的代码:
public static void UseGenericDictionary()
讨论:
在你的应用程序中,对于Hashtable的简单实现,这个替换应该是非常简单的。但是,有一些事是需要密切关注的。例如,Dictionary类没有实现ICloneable接口,而Hashtable类实现了。所以,各位在使用的时候还是需要根据自己的实际情况做相应的改变。
相关文章推荐
- 【C#食谱】【面食】菜单2:理解泛型
- 【C#食谱】【面食】菜单6:泛型约束
- 【C#食谱】【面食】菜单7:用默认值初始化泛型变量
- 【C#食谱】【面食】菜单1: 何时何地使用泛型
- 【C#食谱】【面食】菜单3:用泛型替代ArrayList
- 五、用泛型副本替换哈希表
- 【C#食谱】【面食】菜单4:List和LinkedList性能比较
- 【C#食谱】【川菜】菜单1:列出被引用的程序集
- 【C#食谱】【杭帮菜】菜单1:写一个TCP服务端
- 【C#食谱】【风味小吃】菜单1: 判断分数和小数之间是否近似相等
- C#属性-索引器-里氏替换-多态-虚方法-抽象-接口-泛型-
- 【C#食谱】【风味小吃】菜单6:获取一个数字的高字位值或低字位值
- 【C#食谱】【风味小吃】菜单7:把其他进制的数转换为十进制
- 【C#食谱】【杭帮菜】菜单2:写一个TCP客户端
- 【C#食谱】【风味小吃】菜单2:角度转换为弧度
- 【C#食谱】【风味小吃】菜单4 对各种数据类型运用位运算符求补运算符
- C# 使用List泛型读取和保存文本文件
- 算法学习,单链表 C# 泛型实现
- C# 入门(13) 泛型(generic)、协变(convariance)、逆变(contravariance)
- C# 泛型多种参数类型与多重约束 示例