static未央

博客园 首页 新随笔 联系 订阅 管理
上一页 1 2 3 4 5 6 7 8 ··· 12 下一页

2011年12月2日 #

摘要: 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未央 阅读(432) 评论(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未央 阅读(319) 评论(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未央 阅读(437) 评论(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未央 阅读(399) 评论(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未央 阅读(378) 评论(0) 推荐(0) 编辑

2011年11月30日 #

摘要: 4.5 使用相应的泛型版本替换Stack和Queue问题您希望通过将所有Stack和Queue对象替换为相应的泛型版本以提高应用程序的效率,并使得代码更易于使用。当结构体或其他值类型存储在这些数据结构中时,会导致装箱/拆箱操作,这时就需要这么做。解决方案使用System.Collections.Generic.Stack和System.Collections.Generic.Queue对象来替换现有的System.Collections.Stack和System.Collections.Queue对象。这里有一个简单地使用System.Collections.Queue对象的简单例子:publ 阅读全文
posted @ 2011-11-30 23:53 abstract未央 阅读(334) 评论(0) 推荐(0) 编辑

摘要: 4.3 获取泛型的类型问题您需要在运行时获得一个泛型类型实例的Type对象。解决方案在使用typeof操作符时提供类型参数;使用类型参数实例化的泛型类型,用GetType()方法。声明一个一般类型和一个泛型类型如下:public class Simple{ public Simple() { }}public class SimpleGeneric<T>{ public SimpleGeneric() { }}使用typeof操作符和简单类型的名称就可以在运行时获得简单类型的类型。对于泛型类型来说,在调用typeof时类型参数必须要提供,但是简单类型实例和泛型类型实例都可以使用相同 阅读全文
posted @ 2011-11-30 23:50 abstract未央 阅读(1272) 评论(0) 推荐(0) 编辑

摘要: 从GenericClass<T>中的少许不同点开始,看看_items数组的声明。它声明为:T[] _items;而不是object[] _items;_items数组使用泛型类(<T>)做为类型参数以决定在_itmes数组中接收哪种类型的项。StandarClass在_itmes数组中使用Objcec以使得所有类型都可以做为项存储在数组中(因为所有类型都继承自object)。而GenericClass<T>通过使用类型参数指示允许使用的对象类型来提供类型安全。下一个不同在于AddItem和GetItem方法的声明。AddItem现在使用一个类型T做为参数,而 阅读全文
posted @ 2011-11-30 23:48 abstract未央 阅读(454) 评论(0) 推荐(0) 编辑

摘要: 翻译《C# Cookbook》4.0 介绍泛型,一个期待已久的功能,随着C# 2.0版本编译器的到来出现。泛型是一个非常有用的功能,它使得您的代码变得精简而富有效率。这些将在秘诀4.1进行详细讲述。泛型的到来使得您可以编写更为强大的应用程序,但这需要正确地使用它。如果您考虑把ArrayList,Queue,Stack和Hashtable对象转变为使用相应的泛型版本,可以阅读秘诀4.4,4.5和4.10。当您阅读过后,会发现这种转变不一定简单,甚至有可能会不再打算进行转变。 本章的另外一些秘诀涉及到.NET Framework 2.0所包含的其他泛型类,如秘诀4.6。其他秘诀讲述一些泛型类的操作 阅读全文
posted @ 2011-11-30 23:46 abstract未央 阅读(339) 评论(0) 推荐(0) 编辑

2011年11月25日 #

摘要: 一、线程概述在操作系统中一个进程至少要包含一个线程,然后,在某些时候需要在同一个进程中同时执行多项任务,或是为了提供程序的性能,将要执行的任务分解成多个子任务执行。这就需要在同一个进程中开启多个线程。我们使用C#编写一个应用程序(控制台或桌面程序都可以),然后运行这个程序,并打开windows任务管理器,这时我们就会看到这个应用程序中所含有的线程数,如下图所示。如果任务管理器没有“线程数”列,可以【查看】>【选择列】来显示“线程计数”列。从上图可以看出,几乎所有的进程都拥有两个以上的线程。从而可以看出,线程是提供应用程序性能的重要手段之一,尤其在多核CPU的机器上尤为明显。二、用委托(D 阅读全文
posted @ 2011-11-25 00:15 abstract未央 阅读(319) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 ··· 12 下一页