當你編寫可以節省時間的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 有關數據類型的在線文章。