當你編寫可以節省時間的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 的搜尋和替換功能來增加資料類型。這樣更有意義,因為
在函數和子程式中不能注釋變數。代碼越是程式話,VARIANT 資料型別注釋就越少。
關於Visual Basic資料類型的更多資訊,可以參看MSDN 有關資料類型的線上文章。