ASP中函式呼叫對引數的影響 (轉)

amyz發表於2007-10-17
ASP中函式呼叫對引數的影響 (轉)[@more@]

在中,經常需要自己編寫一些(或過程)來實現某些特定的功能,這時往往需要向函式(或過程)傳遞相應的引數
在函式(或過程)中進行資料處理,即有可能需要保留或改變引數的值,下面有相關範例
用下面的函式(TestAddress)就可以使一個函式多個返回值成為可能(一個函式返回值,多個引數改變後的值)

範例:

%@LANGUAGE="VBSCRIPT"%>
Option Explicit

'===================================================================
' 引數傳遞 
' 1.值傳遞引數 (Call By Value) 
'  Function TestValue(ByVal A,ByVal B) 
'  函式內引數 A、B 改變 不影響 函式的外部變數 

' 2.指標引數 (Call By Address) 
'  Function TestAddress(ByRef A,Byref B) 
'  函式內引數 A、B 改變 影響到 函式的外部變數 
'
'  說明:
' 1. 引數可以是數字、字元、陣列、等VBSCRIPT語言所支援的大部分型別
' 2. 函式返回值的型別也可以是數字、字元、陣列、物件等VBSCRIPT語言所支援的大部分型別
' 3. 過程引數方法與函式類似
'===================================================================
Dim A1,B1
Dim A2,B2

Function TestValue(ByVal A,ByVal B) 

 A = A + 1
 B = B + 1
 TestValue = A + B

End Function

Function TestAddress(ByRef A,Byref B)

 A = A + 1
 B = B + 1
 TestAddress = A + B

End Function

 A1 = 11 
 B1 = 33
 A2 = 11
 B2 = 33

 Response.Write "初值:" & " "
 Response.Write "A1=" & A1 & " "
 Response.Write "B1=" & B1 & "
"
 Response.Write "函式(TestValue)值:" & TestValue(A1,B1) & "
"
 Response.Write "終值:" & " "
 Response.Write "A1=" & A1 & " "
 Response.Write "B1=" & B1 & "


"

 Response.Write "初值:" & " "
 Response.Write "A2=" & A2 & " "
 Response.Write "B2=" & B2 & "
"
 Response.Write "函式(TestAddress)值:" & TestAddress(A2,B2) & "
"
 Response.Write "終值:" &  " "
 Response.Write "A2=" & A2 & " "
 Response.Write "B2=" & B2

'======================
'  相似過程
'======================
Sub Test_Value(ByVal A,ByVal B) 

 A = A + 1
 B = B + 1

End Sub

Sub Test_Address(ByRef A,Byref B)

 A = A + 1
 B = B + 1

End Sub

 

' 類似,傳遞陣列、物件(或者在函式中改變其值、屬性)
’物件直接把物件名作為引數即可
' 陣列,把陣列名稱作為引數

redim aryTest(2,2)
dim intNum


function Ary_Test(ByRef A)
  Ary_Test = Ubound(Ary_Test,2)
end function

'呼叫

intNum = Ary_Test(intNum) '值為 3

%>

 

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-977205/,如需轉載,請註明出處,否則將追究法律責任。

相關文章