将ASP代码移植为VB COM组件-2

网络整理 - 09-11
当你编写可以节省时间的ASP代码时,如果要移植代码的话,有许多事情需要做。跟随以下步骤,你会
发现移植代码没有什么麻烦的。

     声明变量类型

     Visual Basic 和VBscript 的最大缺点是它允许开发人员未经声明就使用变量。如果你觉得这是个好处,
那么当你要整个晚上来寻找由一个小小的打字错误而造成的逻辑错误时,就不再这样想了。如果你使用
了"Option Explicit"(明确选项)而强制明确声明了的话,IDE 就会对此进行警告。

     < %@ Language=VBscript % >
     < % Option Explicit % >

     当你使用Option Explicit时,要记住它刚好在@ declarations下面。不注意这一点会导致一个小小的
错误信息。

     Microsoft VBscript compilation error '800a0400'

     Expected statement

     /test.asp, line 4

     Option Explicit

     ^

     现在挑战来了。VBscript 允许将变量是任何数据类型,只要它是variant。这就是说你只能把变量
声明为variants。在许多方面这是十分浪费的,但是在ASP可以接受。但是在Visual Basic中,当
可能创建更有效的代码时,变量就要被定义类型。这个程序很简单,只需在声明之后加上"as
[data_type]" ,这时它就不再是一个简单的variant了。

     比如说,现在有一个变量是一个字符串。打开一个ASP页然后键入"Dim strSession as String"。然后
预览这个页面,就会得到一个小小的惊喜。

     Microsoft VBscript compilation error '800a0401'

     Expected end of statement

     /icu/temp.asp, line 3

     Dim strSession as String

     ---------------^

     所以,如何作到不对ASP代码造成威胁而准备Visual Basic 的变量?我不能确定对此如何评价。有
一种方式是在变量声明之后使用注释标记。要注意这不仅在将代码移植到VB时有帮助,当有别
的公司提供高薪挖你走的时候,这还有助于别人理解你的代码。以下是在ASP版本2中用注释标记
声明变量的三种途径:

     Private strString 'as String
     Dim intInteger 'as Integer
     Public bolBoolean 'as Boolean

     这种数据类型的定义技巧还适用于你在ASP应用程序中使用的任何函数。(请看下面部分子程序和函数)。

     Private Function(strString, intInteger) 'as Boolean

     当我敲入我的ASP代码时,也在其中贯穿了这些注释。这也许不适合你,也许你在处理一些旧代码,
在移植代码之后,你可以使用Visual Basic 的搜索和替换功能来增加数据类型。这样更有意义,因为
在函数和子程序中不能注释变量。代码越是程序话,变量数据类型注释就越少。

     关于Visual Basic数据类型的更多信息,可以参看MSDN 有关数据类型的在线文章。