[转]C#使用ConditionalAttribute特性来实现代码调试

#if/#endif条件编译常用来由同一份源代码生成不同的结果文件,最常见的有debug版和release版。但是,这些工具在具体应用中并不是非常得心应手,因为它们太容易被滥用了,使用它们创建的代码通常都比较难理解,且难以调试。C#语言的设计者们对这种问题的解决方案是创建更好的工具,以达到为不同环境创建不同机器码的目的。C#为此添加了一个Conditional特性,该特性可以标示出某种环境设置下某个方法是否应该被调用。使用这种方式来描述条件编译要比#if/#endif更加清晰。由于编译器理解Conditional特性,所以它可以在Conditional特性被应用时对代码做更好的验证。Co...

[转]C#中IP地址与数字之间的互转(网上流传的方法有Bug)

转自:http://blog.udnz.com/Article/ConvertIPAddressToNumber.aspx项目中有IP与Int32类型相互转换的需求,于是在网上搜索了相关代码,但发现网上的代码有Bug,加以修改发布如下:/// <summary> /// 将IPv4格式的字符串转换为int型表示 /// </summary> /// <param name="strIPAddress">IPv4格式的字符</param> /// <returns></returns> public stat...

[转]在C#中截取指定长度的中文字符串(效率提高2500倍)

转自:http://blog.udnz.com/Article/CutStr.aspxC#中字符串截断本没有那么麻烦,问题就出在string.Substring()这个方法将中文也按一个字符计算,导致我们在实际应用中截取字符串(中英文组合)后的“长度”不一致。国际惯例,在网上搜索了一下,大致得到了两中截断算法: 1. 从起始位置取得字符 -> 逐一用正则表达式匹配 -> 拼接成最终字符串。(这是广为流传的方法,也是效率最低的方法。) 2. 从起始位置取得字符 -> 逐一用ASCII比较 -> 再拼接成最终字符串。相比之下,算法2比算法1高明,毕...

SQL2008关于c001f011的错误解决办法

从ICassFactory为CLSID为{17BCA6E8-A950-497E-B2F9-AF6AA475916F}的COM组件创建实例失败,原因是出现以下错误:c001f011.(Microsoft.Server.manageDTS)今天在“新建维护计划”时,报错:创建维护计划失败。其他信息:从 ICLassFactory 为CLSID为{17BCA6E8-A95D-497E-B2F9-AF6AA475916F}的COM组件创建实例失败,原因是出现以后错误:c001f011.(Microsoft.SqlServer.ManagedDTS)从ICassFactory为CLSID为{17B...

SQL行转列解决方案

最近有个项目用到行转列,难为死我了,搞了半天实在弄不出来,就上网搜到一段代码。/* 普通行列转换 假设有张学生成绩表(tb)如下: Name Subject Result 张三 语文  74 张三 数学  83 张三 物理  93 李四 语文  74 李四 数学  84 李四 物理  94 */ ------------------------------------------------------------------------- /* 想变成 姓名 语文 数学 物理 ---...

最近回复