摘要: 4.13 初始化泛型变量为它们的默认值 问题 您的泛型类包含一个变量,它的类型和类中定义的类型参数一样。在构造泛型类时,您希望这个变量被初始化为它的默认值。 解决方案 简单地使用default关键字把变量初始化为它的默认值: public class DefaultValueExample { T data = default(T); public b... 阅读全文
posted @ 2008-02-06 09:59 abatei 阅读(3258) 评论(0) 推荐(0) 编辑
摘要: 4.11 在泛型字典类中使用foreach 问题 您希望在实现了System. Collections.Generic.IDictionary接口的类型枚举元素,如System.Collections.Generic.Dictionary 或 System.Collections.Generic.SortedList。 解决方案 最简单的方法是在foreach循环中使用KeyValuePair... 阅读全文
posted @ 2008-02-05 10:49 abatei 阅读(3690) 评论(2) 推荐(1) 编辑
摘要: 本系列文章翻译O'Reilly 出版的《C# Cookbook》一书中的片段,仅供学习交流使用 4.9 使用泛型创建只读集合 问题 您希望类中的一个集合里的信息可以被外界访问,但不希望用户改变这个集合。 解决方案 使用ReadOnlyCollection包装就很容易实现只读的集合类。例子如,Lottery类包含了中奖号码,它可以被访问,但不允许被改变: public class Lotter... 阅读全文
posted @ 2008-02-04 10:02 abatei 阅读(4396) 评论(0) 推荐(0) 编辑
摘要: 4.8 反转Sorted List里的内容 问题 您希望在数组和列表类型中可以反转sorted list里的内容同时又维持SortedList和SortedList类原来的功能。无论是SortedList还是泛型SortedList类都直接提供了完成这个功能的方法而又不需要重填列表。 解决方案 ReversibleSortedList类提供了这些功能,它基于SortedList类,所以拥有相同... 阅读全文
posted @ 2008-02-03 13:34 abatei 阅读(2007) 评论(3) 推荐(0) 编辑
摘要: 本系列文章翻译O'Reilly 出版的《C# Cookbook》一书中的片段,仅供学习交流使用 4.6 链表的实现 问题 您需要链表数据结构,这样就可以很容易地添加和删除元素。 解决方案 使用泛型LinkedList类。下面的方法创建了一个LinkedList类,并往链表对象中添加节点,然后使用了几种方法从链表节点中获得信息。 public static void UseLinkedLi... 阅读全文
posted @ 2008-02-03 13:26 abatei 阅读(2736) 评论(1) 推荐(0) 编辑
摘要: 本系列文章翻译O'Reilly 出版的《C# Cookbook》一书中的片段,仅供学习交流使用 4.5 使用相应的泛型版本替换Stack和Queue 问题 您希望通过将所有Stack和Queue对象替换为相应的泛型版本以提高应用程序的效率,并使得代码更易于使用。当结构体或其他值类型存储在这些数据结构中时,会导致装箱/拆箱操作,这时就需要这么做。 解决方案 使用System.Collection... 阅读全文
posted @ 2008-02-03 13:19 abatei 阅读(2675) 评论(2) 推荐(0) 编辑
摘要: 本系列文章翻译O'Reilly 出版的《C# Cookbook》一书中的片段,仅供学习交流使用 4.3 获取泛型的类型 问题 您需要在运行时获得一个泛型类型实例的Type对象。 解决方案 在使用typeof操作符时提供类型参数;使用类型参数实例化的泛型类型,用GetType()方法。 声明一个一般类型和一个泛型类型如下: public class Simple { public Si... 阅读全文
posted @ 2008-02-03 13:14 abatei 阅读(6544) 评论(4) 推荐(0) 编辑
摘要: 本系列文章翻译O'Reilly 出版的《C# Cookbook》一书中的片段,仅供学习交流使用 4.0 介绍 泛型,一个期待已久的功能,随着C# 2.0版本编译器的到来最终出现。泛型是一个非常有用的功能,它使得您的代码变得精简而富有效率。这些将在秘诀4.1进行详细讲述。泛型的到来使得您可以编写更为强大的应用程序,但这需要正确地使用它。如果您考虑把ArrayList,Queue,Stack和H... 阅读全文
posted @ 2008-02-03 10:14 abatei 阅读(10530) 评论(12) 推荐(3) 编辑