随笔分类 - [23]盗乃忒尔
摘要:一、程序的基本结构 程序的控制核心是Context类,它持有: ·类型管理器TypeManager,管理该运用程序域加载的命名空间及类型的树,树结构如下: TypeDictionary(Root) |--TypeDictionary | |--TypeDictionary | |--TypeD...
阅读全文
摘要: IDE总是笨重不堪,于是我们需要一个简单的控制台Shell去执行一些简单的语句,做一些简单的任务。就把它叫做 OrcShell。
实现简单的CSharpShell -- OrcShell (1) 基本结构
实现简单的CSharpShell -- OrcShell (2) 类型浏览、执行代码片断与其它
阅读全文
摘要:对 Kanas.Net 的《以非泛型方式调用泛型方法 》一文的探讨
阅读全文
摘要:QQ 2006 协议较QQ 2005 有较大变化,最大的变化在登录部分,加入了验证码验证机制,当同一 ip 地址存在过频繁的QQ登录时,服务器会向客户端发送验证码要求登录。本文将详细描述QQ 2006 正式版的登录过程以及聊天协议的变化情况。
阅读全文
摘要:QQ协议老变,为了分析协议,单用抓包工具还是不够的,还是得需要很好的调试工具。在网上找了几个调试工具,易用性均欠佳,不得已自己开发了一个 QQDebugger,不敢专美,特意发布出来。
阅读全文
摘要:采用泛型、using、条件编译实现不同数据库(MySQL,SQLServer 2000)之间的快速切换
阅读全文
摘要:采用泛型实现的State模式代码量比不采用泛型实现的要少,更大的优点是,泛型实现中各种状态的定义比较短,这些定义可以放在一起,这样写起来也不容易写错,维护起来也比较简单。
阅读全文
摘要:实践出真知。提高技术的关键是作出一些东西。看起来有用,看起来伟大的产品都是你我能做出来的。 偶结合自己近来的一些想法,提出几个项目,供大家参考讨论。感兴趣的一起探讨探讨。有时间的兄弟姐妹们可以尝试写一写。 这些项目有这些特点:(1)有用;(2)可行;(3)有意思;(4)做好了都能作大;(5)适合.net开发;(6)可出名(开源)或可卖钱(不开源);(7)和asp.net无关; 一...
阅读全文
摘要:【转载请注明出处】 动机: 充分利用java阵营众多的类库 工具: IKVM――把java bytecode 转换成IL程序,并提供大部分J2SE 1.4类的.net实现(IKVM.GNU.Classpath.dll) winrar――提取jar,打包jar Java IDE(可选)――阅读源代码,浏览类之间的关系,我用的是eclipse 反编译工具(可选)――没源代码时用,主要也是浏...
阅读全文
摘要:几个月之前,在网上找到了一个中文词库素材(几百K),当时便想写一个分词程序了.我对汉语分词没有什么研究,也就凭自己臆想而写.若有相关方面专家,还请多给意见.一、词库 词库大概有5万多词语(google能搜到,类似的词库都能用),我摘要如下: 地区 82重要 81新华社 80技术 80会议 80自己 79干部 78职工 78群众 77没有 ...
阅读全文
摘要:【此文写于几个月前,初发于newsmth.net,今天收入blog中】 本人阅书无数,几乎市面上所有评价还不错的.net相关书籍都买了。这些书的下场一般是这样的:写作或翻译得不行的,不买;一不小心买了,过几天基本上就被扫地出门了;写作、翻译得还行,但是印刷、装订质量不行的,不买,不小心买了,翻一翻就把它扔到故纸堆,不愿意再看了。俺还有些不良嗜好,比如,我一看Wrox的红皮书就会倒胃,尽管《C#高级...
阅读全文
摘要:还能不能得到更精确的时间呢?那就用汇编吧,通过rdtsc直接取时钟周期数。在Feng Yuan的《Windows图形编程》上找到获取时钟周期的函数,在网上搜索到获取本机CPU主频函数,凑在一起,得到如下代码: 1 #include 2 3 extern "C" 4 { 5 __declspec(dllexport) unsigned __int64 GetCycleCount(vo...
阅读全文
摘要:在《dotnet程序优化心得》一文中我主要采用DateTime.Now.Ticks来测量时间,文中我说DateTime.Now.Ticks能够得到精确的时间,Ninputer指出这是一个错误的说法,DateTime.Now测不准ms级时间。我测试了一下,结果确实如此。测试代码如下: 1 2static void Main(string[] args) 3{ 4 long start,...
阅读全文
摘要:(4)继续优化――用空间换取时间 现在对每一个字符,都要用get_Item(object key)方法过一遍,可这个乖乖方法那么长,肯定太耗时间了,能不能用更简单的手段呢?改Hashtable?哇,那代码,叫一个看不懂。仔细琢磨琢磨,有了,直接用数组!每一个汉字对应一个Int16,以该值为索引,数组中在那个位置的值为值,这样最快速了。就是占点空间,内存便宜嘛。反正这东西只初始化一次,占不了多少k。...
阅读全文
摘要:下面以实际例子具体解释相关技巧。 (1)缘起 bfax@smth.org发了一个字符串转换程序,引起了热烈讨论。原程序如下: 1 2Function B2G()Function B2G(prestr As String) As String 3 Dim i, j As Integer 4 Const GB_Lib = "" //几千个字符吧,因为字符串长度限制,原程序...
阅读全文
摘要:近一段时间测试过几个程序,有一些心得。具体步骤如下: (1)写出测试程序(2)测试原程序,记录运行时间,作为优化的基础。要在Release下测试。(3)检查算法,是不是最有效的算法。尤其是现在内存便宜,看有没有能够用空间换取时间的方法(4)用Reflector查看类库,看你使用的方法是不是最有效率的方法(5)对于运行次数多,性能关键的地方,不要直接调用类库。类库是为通用目的设计的,用Reflect...
阅读全文
摘要:很多时候我们需要用到字符串替换程序,比如插入数据库时需要将'替换成''。当只有少数待换字符串时用String.Replace性能很高,但因为其复杂度是O(n),当待换字符串很多的时候,String.Replace的性能就降下来了。前些天写了几个程序,用于批量替换字符串。问题:批量替换字符串。定义字符串对PairString{OldValue,NewValue}。 ...
阅读全文
摘要:tygtug@newsmth.net发文询问“能创建一个对静态类中的一组方法的访问代理吗?”“某些类都有一组静态方法现在想在运行时传入类名根据类名决定执行相应的类的静态方法。类似于指定一个类的变量似的。” “涉及到对旧有代码的改造时的折中考虑,才会有这个需要的,不能把问题归于类的结构涉及不合理而搪塞阿。”偶写了一个实现Demo: 1using System; 2 3namespace Dele...
阅读全文