03 2005 档案
摘要:增强型的模式匹配算法,KMP查找算法VB.NET 2005泛型实现。也不知道用的对不对,但是个人感觉好像是对的。不过做测试的时候发现如果是字符串(字符数组)的匹配,用KMP算法比.NET自己的String.IndexOf还要慢。不知道.NET怎么做的,可能也是KMP算法吧。
和2003版的一样,主函数KMPSearch进行实际的匹配操作。子函数KMPSearchGetNextArray负责计算匹配串每个项目单位对应的权值。只不过加入了(Of T As IComparable(Of T))泛型约束。
阅读全文
摘要:增强型的模式匹配算法,KMP查找算法。全称是克努特-莫里斯-普拉特算法。是一种在一个串内查找第一个匹配子串位置的算法。之所以是增强型的,是应为它修改普通算法中失配的时候,被查找串的查找起始位置只向后移动一个单位的办法。通过首先分析匹配串的逻辑,给每一个项目位置加入一个权值。这样在失配的时候,就可以根据失配项目单位所对应的权值,顺移多个位置再次匹配。具体的算法可以参考《数据结构》一书。
现在我用VB.NET 2003实现这个算法。主函数KMPSearch进行实际的匹配操作。子函数KMPSearchGetNextArray负责计算匹配串每个项目单位对应的权值。
稍后推出使用VB2005泛型的KMP查找算法。
阅读全文
摘要:看了二十四画生的Blog的大小写金额转换函数,自己也对照着写了个VB.NET的,然后用类封装了一下。 原版C#版的,可以看原作者的代码。 Public Class Currency Inherits Object Private Const CST_CAPSTR_TAIL As String = "整" Priva...
阅读全文
摘要:只支持单继承的VB.NET为了解决多继承的问题,引入了接口的概念。接口可以在一定程度上解决单继承给我们设计上带来的一些缺陷,并且接口是类型安全的。本文简单介绍了关于接口的概念,主要篇幅集中到接口的使用上面。
前提知识:VB.NET、OOP。
阅读全文
摘要:今天要做一个小工具,心血来潮的用了一下VB.NET 2005 Express。反正只是我自己用。以前看过“装配脑袋”介绍的2005,感觉不光功能增加了很多,而且在界面、文件结构等方面,2005也作了很大的修改。不过这一次真正使用它开发一个小的WindowsApp,感觉和2003基本没有什么变化。 (1)界面编辑如果只是通过Design画面的话,那么2005在Fom1.Design.vb里面使用P...
阅读全文
摘要:对于DLL文件,取出他的Assembly信息可以使用Reflection.Assembly.LoadFrom(Path)语句来实现。但是这样读取之后,如果我们的程序不退出,这个DLL就会被我们的程序进程锁死,不能修改或删除了。为了解决这样的问题,我们通过AppDomain(应用程序域)来实现。
前提知识:MarshalByRefObject,Reflection.Assembly。
阅读全文
摘要:通过反射取属性列表,相信大家都知道。 System.ComponentModel.TypeDescriptor.GetProperties 我们看到在MSDN里面,GetProperties一共有六个重载列表。我们现在只说两个: (1) GetProperties(componentType As Type) (2) GetProperties(component As Object) ...
阅读全文
摘要:进一步阐述如何通过参数定制我们的Event事件操作以及随后的操作。通过OOP的办法将修改Event类功能所导致的代码修改降到最低。
阅读全文
摘要:通过定义Event内的参数来达到让使用者控制Event事件的相关操作。
阅读全文
摘要:简单阐述了.NET下面的Event是使用方法。以及如何编写一个带有Event的Class及如何抛出Event,使用者如何向普通.NET类一样使用这个Event。
阅读全文
摘要:今天刚刚完成了一个项目。一个用COBOL做的项目。现在这个连OOP都觉得过时的时代,使用COBOL这样的语言感觉真的是怪怪的。看来面向过程的编程方法已经离我们远去了。我们现在需要的是快速开发,高度的模块化,高度的代码重用率。而且这个代码重用时要建立在同一代码重用,而不是像COBOL这样简单的复制来达到代码的重用的。 我一直都认为OOP实际上是一种设计思路,而不是一门技术。这些感想只不过是今天终于...
阅读全文

浙公网安备 33010602011771号