随笔分类 -  C#

摘要:有些对象需要显示地销毁代码来释放资源,比如打开的文件资源,锁,操作系统句柄和非托管对象。在.NET中,这就是所谓的对象销毁,它通过IDisposal接口来实现。不再使用的对象所占用的内存管理,必须在某个时候回收;这个被称为无用单元收集的功能由CLR执行。 对象销毁和垃圾回收的区别在于:对象销毁通常是... 阅读全文
posted @ 2014-07-02 20:00 On the road.... 阅读(69038) 评论(4) 推荐(9) 编辑
摘要:在前面的文章C#相等性比较和C#排序比较中,我已经叙述了类型相等,类型哈希,和类型比较的.NET标准协议。实现了这些协议的类型在一个字典或者列表中也可以正常工作。但是需要注意的是: 只有当类型的Equals方法和GetHashCode方法返回有意义的结果时,该类型才可以作为Dictionary或H... 阅读全文
posted @ 2014-07-02 19:58 On the road.... 阅读(1606) 评论(0) 推荐(0) 编辑
摘要:本文总结了各种Dictionary的内部实现,优缺点,以及使用时的注意事项 阅读全文
posted @ 2014-04-25 10:03 On the road.... 阅读(33259) 评论(2) 推荐(5) 编辑
摘要:前面章节所讨论的集合都可以直接实例化,因此我们可以非常方便的使用这些集合类。但是如果你试图向集合添加或移除元素时添加控制时,它们就不适用了。对于强类型集合,在某些情况下,你需要添加这样的控制 阅读全文
posted @ 2014-04-25 10:03 On the road.... 阅读(3884) 评论(0) 推荐(0) 编辑
摘要:List和ArrayList Generic的List和非Generic的ArrayList类支持可变化大小的对象数组,它们也是最常见的集合类。ArrayList实现了IList接口,而List实现了IList和IList接口(以及新增的IReadonlyList)。与数组不同,所有的接口实现都是公开的,并且Add和Remove方法也对外公开;它们会按照你的希望执行。 在List和ArrayLis... 阅读全文
posted @ 2014-03-21 14:28 On the road.... 阅读(11710) 评论(0) 推荐(0) 编辑
摘要:虽然列举接口提供了一个协议,用于向前的方式遍历集合,但它们没有提供一种机制来确定集合的大小,通过索引访问集合的成员,搜索集合,或修改集合。为了实现这些功能,.NET Framework定义了ICollection,IList和IDictionary接口。每个接口都有Generic的接口和非Generic的接口,请注意非Generic多数用于支持遗留代码。 阅读全文
posted @ 2014-03-18 13:13 On the road.... 阅读(24183) 评论(3) 推荐(2) 编辑
摘要:Array类是所有一维和多维数组的隐式基类,同时也是实现标准集合接口的最基本的类型。Array类实现了类型统一,因此它为所有数组提供了一组通用的方法,不论这些数组元素的类型,这些通用的方法均适用。由于Array是所有集合的基础,因为我们详细介绍了如何初始化数组、数组的内存分配情况、如何遍历数组、如何搜索数组、以及数组排序和数组反转的细节、最后涉及了数组的复制/克隆、以及数组转换和更改数组大小的内容。希望本文能让你了解数组的基本用法及底层细节。 阅读全文
posted @ 2014-03-18 09:29 On the road.... 阅读(12076) 评论(0) 推荐(0) 编辑
摘要:在计算机这个范畴内存在许多种类的集合,从简单的数据结构比如数组、链表,到复杂的数据结构比如红黑树,哈希表。尽管这些数据结构的内部实现和外部特征大相径庭,但是遍历集合的内容确是一个共同的需求。.NET Framework通过IEnumerable和IEnumerator接口实现遍历集合功能。 Non-Generic Generic 备注 IEnumerator IEnumerator I... 阅读全文
posted @ 2014-03-14 11:26 On the road.... 阅读(5844) 评论(2) 推荐(2) 编辑
摘要:与C#定义了相等性比较规范一样,C#也定义了排序比较规范,以确定一个对象与另一个对象的先后顺序。排序规范如下:1)IComparable接口(包括IComparable接口和IComparable接口);2)和运算符. 当需要实现排序算法时,实现Comparable接口,然后通过该接口实现类完成排序 阅读全文
posted @ 2014-03-12 15:35 On the road.... 阅读(11172) 评论(0) 推荐(0) 编辑
摘要:IEnuramble Extension Methods 阅读全文
posted @ 2014-03-07 16:50 On the road.... 阅读(576) 评论(0) 推荐(0) 编辑
摘要:本文阐述C#中相等性比较,其中主要集中在下面两个方面:1) ==和!=运算符,什么时候它们可以用于相等性比较,什么时候它们不适用,如果不使用,那么它们的替代方式是什么?2)什么时候,需要自定一个类型的相等性比较逻辑 3)于相等行比较相关的接口IEquatable,IEqualityComparer,以及IEqualityComparer,这些接口的差别,已经使用的场景 阅读全文
posted @ 2014-03-07 15:41 On the road.... 阅读(15025) 评论(3) 推荐(9) 编辑
摘要:IEnumerable,IEnumerator 阅读全文
posted @ 2014-02-26 16:20 On the road.... 阅读(634) 评论(2) 推荐(0) 编辑
摘要:保存对象到数据库之前,对比内存对象和数据库值的差异 阅读全文
posted @ 2014-02-21 17:36 On the road.... 阅读(772) 评论(0) 推荐(0) 编辑
摘要:使用Func实现按需转换对象为JSON字符串 阅读全文
posted @ 2014-02-21 16:56 On the road.... 阅读(1531) 评论(0) 推荐(0) 编辑
摘要:如何区分const和static readonly 阅读全文
posted @ 2014-02-19 17:10 On the road.... 阅读(4622) 评论(0) 推荐(0) 编辑
摘要:阐述值类型和引用类型的基本概念,并举一个容易理解的例子来加深概念的理解 阅读全文
posted @ 2014-02-19 10:07 On the road.... 阅读(1206) 评论(0) 推荐(0) 编辑
摘要:Func, Action, Delegate Class, delegate 阅读全文
posted @ 2014-02-18 17:29 On the road.... 阅读(836) 评论(0) 推荐(0) 编辑
摘要:Refactor ToString by customer attribute 阅读全文
posted @ 2010-07-07 15:22 On the road.... 阅读(275) 评论(0) 推荐(0) 编辑
摘要:User-defined function via CLR 阅读全文
posted @ 2009-03-04 15:53 On the road.... 阅读(206) 评论(0) 推荐(0) 编辑
摘要:understanding HTTP Endpoint security and create a http endpoint which can be vistion through a client by sending SOAP request 阅读全文
posted @ 2009-02-27 12:23 On the road.... 阅读(239) 评论(0) 推荐(0) 编辑