http://www.cnblogs.com/Jason_z/archive/2009/10/15/1583669.htm
http://www.cnblogs.com/liubo68/archive/2012/12/26/2834119.html
http://www.cnblogs.com/superlee/archive/2010/02/03/1662327.html
http://www.cnblogs.com/zzy0471/archive/2010/12/12/1903602.html