随笔分类 -  FCL这点事

研究研究FCL玩玩
摘要:LINQ中的Distinct方法能够帮助我们轻松地剔除集合里面相同的元素。 它提供了2个重载函数,其中一个允许我们传入IEqualityComparer<T> 接口, 给我们充分的自由来决... 阅读全文
posted @ 2010-11-22 09:36 Anders06 阅读(2095) 评论(7) 推荐(0) 编辑
摘要:首先,托管代码由GC自动回收,不代表托管应用程序就没有内存泄露问题 其次, 程序不总是精确知道哪些托管对象是垃圾,这就代表着没有一款工具,一运行就能给你一个报表,说某某对象没回收,某某地方发生了内存泄... 阅读全文
posted @ 2010-11-20 15:27 Anders06 阅读(507) 评论(0) 推荐(0) 编辑
摘要:相信大部分熟读过《CLR Via C#》一书的人应该明白文字代码问题出在哪里,因为道理都在那本书里摆着。 至于我为什么写此文重谈一遍,一个是因为读书归读书,碰到实际情况时就不见得也能保持冷静明白个所以然,能够避免踩此陷阱; 二则我也很难理解我们的架构师为什么会犯此错误,是故意的呢还是不够仔细踩了地雷。 于是写此文记录一下,以免今后自己犯此错误。各位有则改之,无则加勉 阅读全文
posted @ 2009-10-19 17:01 Anders06 阅读(2588) 评论(6) 推荐(2) 编辑
摘要:本文以一段关于Hashtable原理分析为引子,分享下个人关于学习过程的一些心得。 欢迎拍砖,重在探讨。 前阵子同事问了我些Hashtable原理的问题,关于对象怎样匹配等。我回答说:@#$%^&. 他继续问,哪里有这方面的资料.我说,没有,我猜的。然而他对我笑了笑表示怀疑。我笑着说,不信我可以试给你看。于是我拿出神器:Reflector。 。。。。。。 阅读全文
posted @ 2008-12-15 17:40 Anders06 阅读(2075) 评论(8) 推荐(0) 编辑
摘要:第一次遇到这个类,查MSDN得到: 在集合较小时,使用 ListDictionary 来实现 IDictionary,然后当集合变大时,切换到 Hashtable。集合大小界定于count=10。 用Reflector查看了一下大致能知道是怎么回事。 ... (本文为介绍型,初级级别) 阅读全文
posted @ 2007-10-25 15:35 Anders06 阅读(1213) 评论(0) 推荐(2) 编辑
摘要:前阵子,写了一篇blog:谈谈这阵子忙的事一:关于design整个过程的感想 很多博友对其最后的解决方案很感兴趣,今天补上这样的一篇文章,希望对他们有所交代。由于个人原因,时至今日才补上,希望各位看官见谅。 由于牵涉到本人公司的项目,诸多细节地方不好表达,由此借用Windows Forms Designer里的一套Service机制向大家阐述下,我们项目的最终解决方案跟此机制基本一致。 借此机会和大家共同学习下Framework里的这一套优秀设计方案。 阅读全文
posted @ 2007-10-15 14:06 Anders06 阅读(3054) 评论(10) 推荐(0) 编辑
摘要:盯上了BigList的RemoveAll()方法,仔细一看其算法跟List的RemoveAll实现是一致的. 算法很简单,效率很高,但不见得新手都知道.想我以前在这里翻过跟头,拿出来分享一下吧,简单过一遍就是了. 简单明了想到做法,先遍历集合记录需要Remove的Item的index.遍历完了后,"反向"遍历removeList再一个一个删除之.今天将这个方法跟List的RemoveAll比较测试了一下,看到结果简直想撞墙.在集合元素数目很大的情况下,有天壤之别. 阅读全文
posted @ 2007-06-21 18:45 Anders06 阅读(2545) 评论(8) 推荐(0) 编辑
摘要:昨天刚说了PowerCollections强大,今天就这么随手拿来一看竟发现不少问题,不光是设计,还有效率方面的. (PS: PowerCollections是从"CLR Via C#"一书中看到的,Jeff说其的BigList在count100的时候有更优秀的效率,而且里面提供了很多丰富的集合类.) 最终写了个小测试,发现BigList.CopyTo()竟比List的慢不少 阅读全文
posted @ 2007-06-19 18:12 Anders06 阅读(3377) 评论(13) 推荐(0) 编辑
摘要:wintellect公司为M$提供了一组功能强大,类型丰富的泛型集合类,出自于大名鼎鼎的Jeffrey Richter等之手,并且提供了源代码和文档下载. 详细可以访问http://wintellect.com/PowerCollections.aspx. 前阵子自己也写了两篇关于FCL中的Collection类 ArrayList & List (1) ArrayList & List (2... 阅读全文
posted @ 2007-06-18 17:07 Anders06 阅读(633) 评论(0) 推荐(0) 编辑
摘要:ArrayList & List (1) 里讲到: ArrayList底层用的数据对象就是一组Object的Array,提供了一个List功能的接口. ArrayList.InsertRange(int index, ICollection c) 和 List.InsertRange(int index, IEnumerable collection) 方法参数类型的改变和实现方式. 这篇继续探讨同步的List和ArrayList搞笑的GetRange()方法 阅读全文
posted @ 2007-05-08 15:09 Anders06 阅读(3096) 评论(9) 推荐(0) 编辑
摘要:ArrayList底层用的数据对象就是一组Object的 Array,提供了一个List功能的接口. ArrayList.InsertRange(int index, ICollection c) 和 List.InsertRange(int index, IEnumerable collection) 方法参数了类型的改变和实现方式 阅读全文
posted @ 2007-05-08 14:04 Anders06 阅读(1545) 评论(2) 推荐(0) 编辑
摘要:避免在命名基类的时候使用"Base"后缀,如果该类会用于公用ApI. 一组接口的改变 阅读全文
posted @ 2007-04-30 11:13 Anders06 阅读(686) 评论(0) 推荐(0) 编辑