09 2016 档案
摘要:装饰者模式是动态地扩展一个对象的功能。下面看一个例子:网页中要使用图片,我要上传图片,具体规则: 1、对于一些比较大,甚至几兆的图片,上传后,生成缩略图,生成缩略图可以按照指定尺寸,或者固定宽,高按比例缩放。 2、对于tif格式的图片,通常都比较大,需要转jpg格式的图片,或者转jpg格式后,若发现
阅读全文
摘要:策略模式的要点是封装一组算法,每个算法为独立的类,可以相互替代,因为它们有相似的行为。下面看一个具体的例子: 这是一个彩票网站,采用策略模式的真实案例。我们最终要计算不同彩种,不同方案,不同玩法的中奖率。3码:所有的3位数字,每位数字不能重复(022就不行),且按从小到大顺序排列。范围在012-78
阅读全文
摘要:昨天晚上看了一道逻辑题:一个自然数在1700和1800之间,且被5除余3,被7除余4,被11除余6,求符合条件的数。题目后面写着,有人看了几分钟便给出了答案。我很好奇,此人是如何解答的。 我自己先琢磨了下,拿笔算了半天,最后一个巧合的情况下,得到了答案。此题的一个关键且明显的推论是:能被5除余3的数
阅读全文
摘要:前辈在代码中使用了HashTable,由于我用的比较少,不能理解,为什么不用Dictionary?看了源码以及查阅资料,总结如下: 首先看看它们的继承体系: 我把list<T>的继承体系也一并画出来,因为c#集合中List<T>和Dictionary<T>这两种数据结构实在太常用了。从上图中可以看到
阅读全文
摘要:我把设计模式分为三种:构造型、结构型、行为型。这也是基本的分类,我并没有创新,可能名字跟书本上的不一致,但是意思是一样的。那工厂模式属于哪种设计模式?要回答这个问题,那么我们首先必须对设计模式的分类有所了解。下来,我就简单的区分下这三种分类。 构造型:就是为了把构造对象和使用对象分离开,为什么要分离
阅读全文
摘要:今天早上阅读前辈的代码,看到了这么一段代码,如下所示: 看到第一句,我就怀疑了,c#当中的lock可以这么用吗?这是个什么用法,我第一次看到。我百度了下相关的技术资料。lock 一个引用类型,这没啥问题。问题是这个对象是个字符串。字符串在公共运行时clr中暂留,这意味着整个程序中任何给定字符串都只有
阅读全文
摘要:在研究前辈们写的代码,总是搞不明白。word文中引文的索引和引文列表中的索引对应关系是什么呢?是如何对应上的?我冥思苦想,昨天又系统地看了下代码,才所有悟,所以记录下我的探索过程。 如下图所示: 图1 图2 图1,是word文中引文,图2是题录引文列表,红色的是索引,这两个索引是要一一对应的。 这段
阅读全文
摘要:我遇到了一个bug,是客户测试我们的产品,报出来的,而且有异常信息文件,这对于定位问题,很有帮助。 我找到源码看了下,bug还无法重现。于是我随便点点客户端,经过了几次调试,结果报出错误来了。客户端界面如下: 代码如下: 代码解释下:9到30行的if else 是控制编辑引文界面上右侧的按钮的启用和
阅读全文
摘要:作为一个软件开发者,研究问题以及解决问题是我们的职业所要求的。针对一个问题,我们想要研究它,学习它,那就需要搜集相关的材料,学习这个问题所牵扯到的知识。只有掌握了一定的知识,那么利用我们的推理、观察、思考等才可能尽快地解决问题。 最近研究c#操作word脚注(footnote)。在网上搜索关于c#操
阅读全文
摘要:dotnet core已经出来有一段时间了,不是什么新名词了。但这个技术,目前还是比较新的,企业也没有普遍应用。它最大的亮点就是跨平台,也就是我们写的c#代码,可以运行在linux上。 在国内学习dotnetcore有点困难。下面是我在linux上安装dotnetcore的一些曲折经历。 我用两个虚
阅读全文