代码改变世界

由类能否包含自己说开去

2010-12-13 16:47 by MichaelYin, 2200 阅读, 0 推荐, 收藏, 编辑
摘要:下午在Coding的时候突然想到了一个问题,类到底能不能包含自己?在什么情况下能包自己? 当时正在实现一个类似链表的功能,在一个节点中需要有下个节点的引用的数据,比如像这样子的代码。 在Node中有一个Node类型的引用地址,用来找到这个节点的下一个节点。默认构造函数调用后会将data置0,Next置null,当时我写到这里突然想起来好像在哪里看到过类中包含类自己是不行的。于是在Console... 阅读全文

算法排序之堆排序

2010-12-08 23:06 by MichaelYin, 378 阅读, 0 推荐, 收藏, 编辑
摘要:堆排序的重点在于对堆的理解,首先堆是一种数组对象,同时,它也可以被视为一棵完全二叉树,树中的每个节点从上到下,从左到右和数组中的每个元素是一一对应的,二叉树的每一层都是填满的,除了最后一层以外。 比如数组中的第一个元素就是二叉树的根节点,第二个就是元素就是根节点的左边的子节点,而第三个节点就是根节点的右边的子节点,然后第四个节点就是根节点的左边的子节点的左边的子节点,这样以此类推。 通过给定的... 阅读全文

字符编码那些事儿

2010-12-06 16:57 by MichaelYin, 616 阅读, 0 推荐, 收藏, 编辑
摘要:这几天专门花时间好好看了下字符编码的东西,在这里写篇随笔把知识好好梳理一下。 讲到字符编码,还是从最基本的ASCII讲起咯。 在计算机刚开始使用时候,人们必须用计算机里面的01这样的二进制组合来表示一些基本的英文字母和字符,当然了,每个人都可以有自己的一套编码标准来完成这个看似简单的功能,不过,为了不同的计算机系统之间能够相互通信而不产生混乱,那么所有的计算机就必须采用相同的编码标准,所以美国... 阅读全文

BlogEngine中的BlogSettings

2010-11-26 20:44 by MichaelYin, 414 阅读, 0 推荐, 收藏, 编辑
摘要:BlogEngine中的BlogSettings这个类是用来提供整个系统的设置参数的,参数的读取采用的是反射获取属性名称,然后遍历进行赋值,个人觉得这段代码值得学习 private void Load() { Type settingsType = this.GetType(); //---------------------------------------------------------... 阅读全文

MSchart与Zedgraph使用初探及比较

2010-11-25 09:59 by MichaelYin, 2240 阅读, 0 推荐, 收藏, 编辑
摘要:最近项目中的统计图表功能需要重新进行下调整,所以这两天花时间学习了下关于统计图表方面的东西。 统计图表的实现方式常用的有Flash方式和图片方式,我这两天主要是把MsChart和Zedgraph研究了一下,简单说下MSchart,这个图表解决方案是微软官方提供的图表解决方案,使用的时候需要.Net3.5 Sp1(在一篇文章的评论中看到有人说.net2.0中也能用,只是需要把需要用到的dll手动加... 阅读全文

Subsonic查询中奇怪的数据丢失问题

2010-11-09 17:43 by MichaelYin, 391 阅读, 0 推荐, 收藏, 编辑
摘要:昨天在项目中遇到了一个很奇怪的问题,用Subsonic查询出来的对象中部分字段值出现了丢失,比如我写这样一个查询语句 后面的查询跟Sql语句差不多的,返回一个对象,但是从程序Debug中来看的话,有些属性并没有取到值,这个有点奇怪的现象引起了我的兴趣,在网上找了一下,找到了对应的源码,将SubSonic Project加载到我实验的Console的Project中去,查询中所调用的东西都在里面。... 阅读全文

算法学习之合并排序

2010-10-30 20:02 by MichaelYin, 510 阅读, 0 推荐, 收藏, 编辑
摘要:在我的前面的一篇Post中我讲了排序算法中很基本的插入排序,插入排序实现的算法思想是增量方法,即排好子数组之后,加入一个新的元素,然后再进行一个排序操作,保证重新生成按序排列的数组。 这篇Post我将简单的讲讲排序算法另外一种算法,合并算法,合并算法采用分治法的思路,即问题划分成n个规模较小而结构和原来问题相似的子问题,递归解决这些子问题,然后合并结果,最终得到原来问题的解。 合并算法主要分为... 阅读全文

BlogEngine中的Provider模式(下)

2010-10-23 21:18 by MichaelYin, 265 阅读, 0 推荐, 收藏, 编辑
摘要:前面一篇Post主要专注于读取Web.Config中的配置的过程,这一篇将从面向对象的角度来阐述Provider的实现细节。BlogEngine中其实很多处用到了Provider模式,而我希望就数据存储这部分把Provider给大家讲清楚,因为其他的地方和数据存储差不多,实现的方式大同小异。BlogEngine中的BlogProvider是一个继承自ProviderBase的抽象类,在Provid... 阅读全文

BlogEngine中的Provider模式(上)

2010-10-23 20:27 by MichaelYin, 482 阅读, 0 推荐, 收藏, 编辑
摘要:BlogEngine中的数据存储部分使用了Provider模式来支持多种数据存储方式,比如Sql server,XML等。只需要通过修改Web.Config文件中的响应配置节就可以按需求进行数据存储方式的改变。<configSections> <sectionGroup name="BlogEngine"> <section name="blogProvider" r... 阅读全文

Random 学习笔记

2010-10-20 20:44 by MichaelYin, 406 阅读, 0 推荐, 收藏, 编辑
摘要:这几天在学习算法,所以生成随机数组就不可避免了,以前只是知道Random 这个类是用来生成随机数的但是没怎么用过,这次正好趁这个机会好好了解一下,在园子里面看了下别人写的文章和代码,自己又在VS里面跑了几次,这里就把一些觉得useful的东东记下来。Random是用来生成伪随机数的类,它根据生成对象时候的随机种子进行复杂的计算,然后生成伪随机数。如果我们在调用构造函数的时候没有指定随机种子,那么默... 阅读全文