Effective C# 原则40:根据需求选择集合
2009-02-19 08:17:44 来源:WEB开发网对于数组类的概念而言,在C#的1.x发布版中,没有一个集合类是强类型的。它们都是存储的对象引用。C#的范型将会在所有这些拓扑上包含新的版本。这会是一个最好的方法来创建类型安全的集合。同时,目前的System.Collections 名字空间中包含了抽象的基类,利用这些基类,你可以在类型不安全的集合上创建你自己的类型安全的接口:CollectionBase 和ReadOnlyCollectionBase 提供了列表和向量结构的基类。DictionaryBase 提供了键/值对应的基类。DictionaryBase类是建立在Hashtable上的,它的性能与Hashtable是一致的。
(译注:在C#1.x中,我们其实可以合建类型安全的集合,当然这只是利用编译器一些特性,例如:
public class MyObject
这样就可以简单的验证集合的类型了,当然,本质上还是类型不安全的,这只是一个折衷的办法。
{
}
public class MyObjectCollection : ArrayList
{
[ObsoleteAttribute("Please use specify object.",true)]
public override int Add(object value)
{
return base.Add (value);
}
public int Add(MyObject value)
{
return base.Add (value);
}
new public MyObject this[int index]
{
get
{
return base[index] as MyObject;
}
set
{
base[index] = value;
}
}
}
任何时候,你的类型包含集合时,你可能想要把这些集合在你的类上暴露给你的用户。你有两个方法:使用索引或者使用IEnumerable接口。记住,在这一原则的一开始,我就说明过,你可以直接使用[]标记来访问一个数组里的元素,而且你可以用foreach来迭代数组里的任何元素。
- ››根据经纬度坐标取详细地址(包括国,省,市,街道...
- ››根据浏览器和分辨率调用CSS代码
- ››根据批量URL生成有书签的PDF文档的解决方案
- ››根据status信息对MySQL服务器进行优化
- ››Effective C# 原则40:根据需求选择集合
- ››Effective C# 原则41:选择DataSet而不是自定义的...
- ››Effective C# 原则42:使用特性进行简单的反射
- ››Effective C# 原则43:请勿滥用反射
- ››Effective C# 原则44:创建应用程序特定的异常类
- ››Effective C# 第6章:杂项
- ››Effective C# 原则45:选择强异常来保护程序
- ››Effective C# 原则47:选择安全的代码
更多精彩
赞助商链接