quark

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2011年7月16日

摘要: .NET中的System.Text.RegularExpressions.Regex类是非常好用的一个类。最近在使用Regex.Replace(…)方法时,对于替换字符串中使用的“$0”,“$1”等东西比较迷糊。在网上简单搜索了一下,没有找到什么好的回答。于是,自己摸索了一下,原来如此啊我们先看如下代码: string pattern = "Tom"; var input = "Tom is not tom."; // I wanna to replace 'Tom' to 'Tomas' var outp... 阅读全文
posted @ 2011-07-16 11:15 QuarkZ 阅读(1731) 评论(0) 推荐(0) 编辑

2011年6月29日

摘要: 关于C++动态库导出API相关的这几个关键字,一直困扰了许久,每次在调用C++动态库接口函数的时候,我都不得不花一些时间去“试”。但是用过之后就忘了……首先解释一下 _cdecl 和 __stdcall所代表的意义:Cdecl:调用方清理堆栈。这使您能够调用具有 varargs 的函数(如 Printf),使之可用于接受可变数目的参数的方法;StdCall:被调用方清理堆栈。这是使用平台 invoke 调用非托管函数的默认约定。我花了一些时间专门对以上这个关键字做了一些测试。结果如下(没有使用def文件):API函数声明:__declspec(dllexport) void MyMethod( 阅读全文
posted @ 2011-06-29 16:28 QuarkZ 阅读(836) 评论(0) 推荐(0) 编辑

摘要: 今天在阅读《CLR via C#》,书中说“使用foreach语句时,会在finally块中调用IEnumerator对象的Dispose方法”(第20章 异常和状态管理,P434)自己很奇怪的是,在编译foreach语句时也会生成try/finally语句块吗?会吧,不会吧!!于是自己做了如下实验: static void ILDiscoveryForeach() { var someList = Enumerable.Range(0, 10); foreach (var item in someList) ... 阅读全文
posted @ 2011-06-29 13:26 QuarkZ 阅读(398) 评论(2) 推荐(0) 编辑

2011年6月27日

摘要: 最近因为重装系统,自己从Foxmail改为使用Outlook2010,发现Office的Outlook没有像Foxmail的邮件“再次发送”功能。因为公司每天要求我们写日报(Daily Report),以前使用Foxmail的时候,我每次都会选中昨天的日报邮件,然后点击“再次发送”,Foxmail会创建一封跟昨天日报格式一模一样的邮件,我只需要改改其中的内容,其他的收件人、抄送人、主题、签名等均不用改变。现在使用Outlook就麻烦多了,我只能点击“全部答复”,然后得把主题里面的“答复”字样的字符串删除,然后还得修改正文里面多出来的东西。能不能利用Outlook现有的东西,实现像Foxmail 阅读全文
posted @ 2011-06-27 19:25 QuarkZ 阅读(2327) 评论(0) 推荐(0) 编辑

2011年6月23日

摘要: 在工作当中,经常会用到反射技术来实现对一些对象的序列化\反序列化的功能。以下是对于FieldInfo这个类型的两点心得:假设有如下结构 public struct SomeStruct { public int publicField; private int privateField; public static int staticField; }一、使用BindingFlags获取一个类或者结构特定的字段以下是一段测试代码: private static void TestGetFields() { ... 阅读全文
posted @ 2011-06-23 15:12 QuarkZ 阅读(5985) 评论(2) 推荐(2) 编辑

2011年6月8日

摘要: quark 标签: C# IL这是本系列的第一篇文章,这个系列主要是想和大家分享自己在学习.NET的过程中关于IL语言的一些心得体会。C#语言在3.0以后,在语言创新上已经上升到了一个新的台阶,扩展方法、匿名函数、Lambda表达式、Linq等等。我们知道,.net framework 3.0/3.5都是基于CLR2.0基础之上的,CLR在功能上并没有任何的提升。上面提到的新的语法特性,在IL语言级别,都会被脱掉“华丽的外衣”,露出其真实的面目——类、类的数据成员、类的成员函数。其他神马都是浮云。.net程序员是否需要学习IL语言,已经有很多大牛已经讨论过了,这当然取决于个人需求和兴趣,但是个 阅读全文
posted @ 2011-06-08 11:07 QuarkZ 阅读(677) 评论(0) 推荐(1) 编辑

2011年3月18日

摘要: 最近在自己的机器上装了Visual Studio 2010,安装完成后,跑起来发现速度很慢(5年前的电脑,1G的内存。。。),有没有办法能够让Visual Studio跑得更顺畅一些?曾经在网上看到过通过设置VS2005/2008中相关选项,能够起到提高Visual Studio速度的文章。在这里,自己做一些整理,展示如果通过设置Visual Stuido 2010中的设置选项,从而提高速度。一、关闭 ‘Enable rich client visual experience’打开 Tools | Options | Environment;去掉勾选 Automatically adjust 阅读全文
posted @ 2011-03-18 10:53 QuarkZ 阅读(2206) 评论(1) 推荐(0) 编辑

2011年1月24日

摘要: .NET4.0 + MemoryMapping + ReadByte()该方法的思路主要是通过内存映射的原理,访问文件内容,由于在.net环境下不能一次性映射太大的文件,所以仍然采用分块映射的方式:主要代码如下: /// <summary> /// MemoryMapping + ReadByte() /// </summary> unsafe static void CalulateLine_MemoryMapping_ReadByte(uint oneBlockSize) { const strin... 阅读全文
posted @ 2011-01-24 16:33 QuarkZ 阅读(544) 评论(0) 推荐(0) 编辑

2011年1月21日

摘要: 最近在和一个朋友的交流中,遇到这么一个问题,如何能较快对一个较大的文本文件(1G或更大)的文本行数进行统计。如果不考虑效率,要统计一个文本的行数其实一点也不难,但是如果需要在较快的时间内做完,恐怕就得考虑实现方法了。为此,自己尝试了几种方法,在这里把这几种方法拿出来和大家讨论一下。首先是生成测试数据的代码: const int COL_NUM = 30; const int LINE_NUM = 10000000; const string FILE_NAME = @"d:\test.csv"; /// <summary> ... 阅读全文
posted @ 2011-01-21 14:20 QuarkZ 阅读(2043) 评论(0) 推荐(0) 编辑