追时间

Yak shaving during web development, thoughts...from Jijie Chen

try..finally还是 try..catch..finally——你的异常处理异常了吗?

 catch用于处理异常,而finally用于运行必须运行的代码,比如回收资源等。
那有人就要问了:finally 里的语句一定会被执行吗?我难道不可以使用何种语句让它不会执行吗?确实会在异常、崩溃时也能执行吗?

我一直这样回答提问者的问题:一定会,无论使用何种语句试图跳出,它都会被正常执行!

下面,我将简单地论证为什么是这样的,以及什么时候 finally 里的语句不会被执行呢?
[更多...]

C#产生不重复的随机数并生成随机文件名

 如果不给 Random 的构造函数传递参数,如果时间相同,即使使用不同的 Random 实例,由于初始化它们的种子(系统时间)是相同的,所以Random 对象的这些实例产生的随机数仍然是相同的。

然而我们确实需要不重复的随机数,生成不重复的随机数(即“随机”的随机数)一直是一个受关注的技术话题。

对于随机数的重复部分,本文介绍几种方法可以方便地解决。

使用 System.IO.File.Exist() 方法即可验证是否已存在相同的文件名,使用一个 while 循环来一直获取随机文件名,直到不与已经存在的文件名相同为止。
[更多...]

利用C#快速地编写属于自己的正则表达式测试小工具

在项目中,经常要用到正则表达式来匹配具有一定规则的字符串。有时候需要检查我们编写的正则表达式是否正确,能否匹配目标字符串,这时我们可能需要一个正则表达式匹配检测的工具了。使用 .Net 可以非常方便地编写这样的一个小工具,然后把它添加进 visual studio 的外部工具列表中,在需要时,很方便就能够调用。

如果需要此工具,请点击这里下载:RegexTestTool.rar (10.02 kb) [更多...]

.Net 中的正则表达式及其在 Asp.Net 中的应用(基础入门全辑)

正则表达式是一种处理文本的有用工具。无论是验证用户输入、搜索字符串内的模式、还是以各种有效方式重新设置文本格式,正则表达式都非常有用。 Microsoft®.NET Framework 对正则表达式的支持是一流的,甚至在 Microsoft® ASP.NET 中也有依赖正则表达式语言的控件。本文介绍了深入学习正则表达式的基础知识和推荐内容。 本文主要面向对正则表达式知之甚少或没有使用经验,但却熟悉 ASP.NET、可借助 .NET 编程的初学者。 [更多...]

C# 中字符串转义字符及逐字字符串:C#字符串字面量直接赋值

从C语言走过来的我们,对转义字符早已很熟悉了,知道使用各种转义字符来实现输入各种具有特列意义的字符或者其他需要转义的字符。C#允许按常规的转义字符处理的方式来给字符串常量赋值,如果编译器检测到你正在为一个字符串变量赋值,你在其中写的双斜扛将不会被当作注释符。

更加令我们欣喜的是,C#的作者很大方地将字符串赋值这一功能做了十分广阔的扩展:在C#中,我们可以将所有字符直接作为字符串常量的值赋给字符串量,甚至包括了平时在我们看来是一定需要转义的各种字符;要实现这一切仅需要在字符串常量的值前加一个符号“@”,以这种形式赋值的字符串叫做逐字字符串,它后面的所有字符都被逐个地收录到字符串的值中!

本文向您详细地述写了这两种赋值的使用方法。 [更多...]