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