static未央

博客园 首页 新随笔 联系 订阅 管理

2011年12月2日 #

摘要: 4.11 在泛型字典类中使用foreach问题您希望在实现了System. Collections.Generic.IDictionary接口的类型枚举元素,如System.Collections.Generic.Dictionary 或 System.Collections.Generic.SortedList。解决方案最简单的方法是在foreach循环中使用KeyValuePair结构体: // 创建字典对象并填充. Dictionary<int, string> myStringDict = new Dictionary<int, string>(); myStr 阅读全文
posted @ 2011-12-02 00:15 abstract未央 阅读(444) 评论(0) 推荐(0)

摘要: 4.10 使用相应的泛型版本替换Hashtable问题您希望通过使用相应的泛型版本替换所有Hashtable来增强应用程序性能并使得代码更为易读。当您发现这些数据结构中存放结构体和值类型会导致装箱/拆箱操作,这就变得非常有必要了。解决方案替换所有已存在的System.Collections.Hashtable类为速度更快的System.Collections.Generic.Dictionary泛型类。这有一个使用System.Collections.Hashtable对象的简单例子:public static void UseNonGenericHashtable() { // 创建并填充一 阅读全文
posted @ 2011-12-02 00:07 abstract未央 阅读(444) 评论(0) 推荐(0)

摘要: 4.9 使用泛型创建只读集合问题您希望类中的一个集合里的信息可以被外界访问,但不希望用户改变这个集合。解决方案使用ReadOnlyCollection<T>包装就很容易实现只读的集合类。例子如,Lottery类包含了中奖号码,它可以被访问,但不允许被改变:public class Lottery { // 创建一个列表. List<int> _numbers = null; public Lottery() { // 初始化内部列表 _numbers = new List<int>(5); // 添加值 _numbers.Add(17); _numbers. 阅读全文
posted @ 2011-12-02 00:06 abstract未央 阅读(334) 评论(0) 推荐(0)

摘要: 4.8 反转Sorted List里的内容问题您希望在数组和列表类型中可以反转sorted list里的内容同时又维持SortedList和SortedList<T>类原来的功能。无论是SortedList还是泛型SortedList<T>类都直接提供了完成这个功能的方法而又不需要重填列表。解决方案ReversibleSortedList<TKey, TValue>类提供了这些功能,它基于SortedList<TKey, TValue>类,所以拥有相同的功能,它提供了额外的功能是很容易反转已排序的列表。在实例化ReversibleSortedLi 阅读全文
posted @ 2011-12-02 00:05 abstract未央 阅读(448) 评论(0) 推荐(0)

摘要: 4.7 创建一个可以被初始化为空的值类型问题您有一个数字类型的变量,用于控制从数据库中获取的数值。数据库可能为这个值返回一个null值。您需要一个简洁的方法来存储这个数值,甚至它返回为null。解决方案使用可空类型。有两个创建可空类型的方法。第一种方法是使用?类型修饰符:int? myDBInt = null;第二种方法是使用Nullable<T>泛型类型:Nullable<int> myDBInt = new Nullable<int>();讨论本质上,下面两个声明是等价的:int? myDBInt = null;Nullable<int> m 阅读全文
posted @ 2011-12-02 00:02 abstract未央 阅读(424) 评论(0) 推荐(0)

摘要: 4.6 链表的实现问题您需要链表数据结构,这样就可以很容易地添加和删除元素。解决方案使用泛型LinkedList<T>类。下面的方法创建了一个LinkedList<T>类,并往链表对象中添加节点,然后使用了几种方法从链表节点中获得信息。 public static void UseLinkedList() { // 创建一个LinkedList 对象. LinkedList<TodoItem> todoList = new LinkedList<TodoItem>(); // 创建添加到链表内的TodoItem对象. TodoItem i1 = 阅读全文
posted @ 2011-12-02 00:00 abstract未央 阅读(389) 评论(0) 推荐(0)