[置顶] 近期/2017年业余时间学习列表

1) SQL Server数据库相关学习(使用+优化)
2) 个人使用番茄工作法时间管理小软件开发
3) ASP.NET MVC学习(搭建简单的CMS框架)
4) PHP相关学习
* typecho:主要折腾个人站
* thinkphp: 学习使用,达到搭建简单CMS框架能力

愿生活不再是盲目的苟且,而是能有自己热爱的方向,向往远方,但却也从当前开始。

C# Round()函数,数值四舍五入取整方式

今天在项目中偶然遇到使用decimal.Round()函数对decimal值进行取2位小数时,0.995的值为1. 代码如下:

decimal newVal = decimal.Round((decimal)0.995, 2);

运行后newVal=1. 因为是涉及到打折的问题,所以预期期望应该是0.99。于是找了下资料,读了MSDN的文档,对decimal取整的用法大致熟悉了,遂成此文,用于参考。

- 阅读剩余部分 -

C#实现单例模式的几种方法

  • 介绍
  • 非线程安全的单例版本
  • 简单线程安全版本(通过lock实现)
  • Double-checked locking
  • 不完全懒汉式,但不加锁的线程安全
  • 完全懒汉实例化
  • 使用.NET 4 Lazy type 特性
  • 性能 vs 懒汉式
  • Exceptions
  • 总结

介绍

单例模式是软件工程学中最富盛名的设计模式之一。从本质上看,单例模式只允许被其自身实例化一次,且向外部提供了一个访问该实例的接口。通常来说,单例对象进行实例化时一般不带参数,因为如果不同的实例化请求传递的参数不同的话会导致问题的产生。(若多个请求都是传递的同样的参数的话,工厂模式更应该被考虑)

- 阅读剩余部分 -

正则表达式匹配手机号

经常需要用到这一判断,一直没有找到一个精确的正则表达式,这里用于记录下。

正则字符串如下:

^[1]{1,1}[3,4,5,7,8]{1,1}\d{9}$

其中: 

^           从字符开头匹配
[1]{1,1}    字符必须以1开头,{1,1}表示只能匹配一个
[3,4,5,7,8] 匹配其中的一个数字
\d          匹配数字
{9}         重复9次
$           从后面开始匹配

- 阅读剩余部分 -

SQL Server Cursor 游标简介

游标用于遍历一个结果集合,在存储过程、自定义函数中要遍历某个中间结果集时非常有效。

语法

游标具体创建的语法这里不作具体说明,后面的例子中可见。但对游标使用中几个关键字进行简单说明。

  • DECLARE: 用于定义一个T-SQL的游标;
  • OPEN: 打开已定义的游标;
  • FETCH: 从游标指向的结果集中返回一行;
  • CLOSE: 关闭游标;
  • DEALLOCATE:释放游标资源;

基本上,游标的使用中,上述5个关键字都需要用到。

- 阅读剩余部分 -