Ray Lei 发布的文章

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<T> 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个关键字都需要用到。

- 阅读剩余部分 -