摘要: 以前曾看见过这样一个问题:托管代码会不会导致内存泄漏。自己对GC的了解也不是很深,但还是比较赞成这样的观点:托管代码不会产生内存泄漏,除非你没有正确释放非托管资源。 今天看到一个非常有趣的例子,关于没有释放事件的Handler导致的内存泄漏。 以前对于释放Handler的观念是一点也没有,这主要因为没此方面的意识,没有养成好的习惯。只知道当关心这个事件的时候就注册一下, 暂时不关心了就移除掉。却从来没有想到最终不移除不必要的Handler会导致此类无法被正常回收,导致不必要的内存浪费。 您知道WeakReference吗? 您知道用此种方式实现的Event吗? 阅读全文
posted @ 2008-01-15 17:17 Anders06 阅读(3776) 评论(12) 推荐(0) 编辑
摘要: 这里没有按照"传统"的方式给您讲述设计模式,没有一行代码来演示如何实现 这里主要想体现的是自我对模式的思考,对前人精华的自我吸收. 从积木到组合到Bridge, 从解耦到封装到适应需求变化,一个菜鸟程序员的思考 SRP,OCP,面向接口编程,优先使用组合, Bridge教你如何思考OO 阅读全文
posted @ 2007-07-10 12:35 Anders06 阅读(2428) 评论(7) 推荐(0) 编辑
摘要: 读了一书,似乎对Mediator模式理解变得模糊了,书上实现是如此简单,然而却跟以前自己所知的Mediator模式的结构大相径庭, Colleague对象是否一定要拥有Mediator对象的引用?是否一定要有Colleague抽象类呢? mediator模式可否用delegate简化,如果有的话该如何实现, 跟使用delegate简化实现的Observer模式又有什么区别呢? ...陷入疑问中...... 阅读全文
posted @ 2006-06-21 16:42 Anders06 阅读(1533) 评论(2) 推荐(0) 编辑
摘要: BackgroundIn our application, we have a screen which hosts several tabs. In each tab, it contains a third-party GridControl (like the WPF standard GridView control). And we need to display some column cells as hyper link, so user can click on it, view more details. So we have customized the Cell tem 阅读全文
posted @ 2013-10-29 18:10 Anders06 阅读(1812) 评论(0) 推荐(0) 编辑
摘要: 老赵一出手,又引来无数跟帖。详见 我在面试.NET/C#程序员时会提出的问题小弟不才,只被面试过,从未面试过别人。所以想从被面试方的角度来谈谈,在我心中理想的面试应该是咋个样的。前阵子lzprgmr同学,站在面试官的立场上谈了谈他的感受,见 谈谈技术面试。里面写道:首先,我觉得技术面试是需要讲究技巧的,不是随随便便拉一个技术不错的人就可以,因为面试的过程是双方相互交流的过程,你需要给对方营造一个轻松的气氛,并在不断的提问与回答的过程中,进行“合理的引导”,“适时的追问”与“正确的判断”我非常赞成他的观点,面试官跟被面试的人无论如何都很难做到绝对的平等, 面试官对题目准备充分,享有话语权,而且接 阅读全文
posted @ 2011-03-04 17:25 Anders06 阅读(6028) 评论(42) 推荐(7) 编辑
摘要: LINQ中的Distinct方法能够帮助我们轻松地剔除集合里面相同的元素。 它提供了2个重载函数,其中一个允许我们传入IEqualityComparer<T> 接口, 给我们充分的自由来决... 阅读全文
posted @ 2010-11-22 09:36 Anders06 阅读(2095) 评论(7) 推荐(0) 编辑
摘要: 假设我们对如下Block中的红色线段做了标注,那么这个标注的两个锚点(Anchor Point)分别为红色线段的2个端点 当我们旋转这个Block后,我们自然希望这个标注也跟着物体旋转的,调整到如下... 阅读全文
posted @ 2010-11-20 16:27 Anders06 阅读(1194) 评论(2) 推荐(1) 编辑
摘要: 首先,托管代码由GC自动回收,不代表托管应用程序就没有内存泄露问题 其次, 程序不总是精确知道哪些托管对象是垃圾,这就代表着没有一款工具,一运行就能给你一个报表,说某某对象没回收,某某地方发生了内存泄... 阅读全文
posted @ 2010-11-20 15:27 Anders06 阅读(507) 评论(0) 推荐(0) 编辑
摘要: 两条非平行线段, 如何合理的标注角度。比方说对于下面2条初始线段: 根据当前鼠标所在位置的不同,我们可能得到如下不同的标注方式: 本人求标注的思路大体思路是:首先求出圆弧(Dimension Line)的两个端点, 然后根据这两个已求得的端点,分别计算出两条引线(Witness Line)的端点。 求圆弧端点的算法: 我们把问题简化下,对于任意2条相交的射线,以下均以锐角为例(钝角求解过程完全一... 阅读全文
posted @ 2010-11-18 21:58 Anders06 阅读(2671) 评论(6) 推荐(1) 编辑
摘要: 记录一段小经历,当我们嗅觉到一段有问题的代码时,仔细研究下会有不错的发现。经验总结:当我们跟IntPtr打交道时一定要小心谨慎,谨防GDI泄漏Yesterday, I noticed that someimage resources in Annotation project are not defined as static, the clientdirectly access by ̶... 阅读全文
posted @ 2010-08-20 18:07 Anders06 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 一个不良API例子的浅析,及重构后的结果 阅读全文
posted @ 2010-08-11 18:47 Anders06 阅读(428) 评论(0) 推荐(0) 编辑
摘要: 相信大部分熟读过《CLR Via C#》一书的人应该明白文字代码问题出在哪里,因为道理都在那本书里摆着。 至于我为什么写此文重谈一遍,一个是因为读书归读书,碰到实际情况时就不见得也能保持冷静明白个所以然,能够避免踩此陷阱; 二则我也很难理解我们的架构师为什么会犯此错误,是故意的呢还是不够仔细踩了地雷。 于是写此文记录一下,以免今后自己犯此错误。各位有则改之,无则加勉 阅读全文
posted @ 2009-10-19 17:01 Anders06 阅读(2588) 评论(6) 推荐(2) 编辑
摘要: 以下代码源自于真实项目,本人只是做了一点简化,大家来找碴,看看哪些地方不妥:-) 阅读全文
posted @ 2009-10-14 16:43 Anders06 阅读(381) 评论(0) 推荐(0) 编辑