我有一個函式“A”,它從 SSRS 的文本框中檢索一個整數值:
Dim currasm As Integer = Nothing
Function GetAsmCurrent(ByVal currasm As Integer) As Integer
Return currasm
End Function
...以及第二個函式“B”,我想在其中使用從函式“A”回傳的值。
Dim lastsn As String = Nothing
Function GetSN(ByVal currentsn As String) As String
Dim currasm1 As Integer = Nothing
' <------ Here is where I thought I could call the function ------>
currasm1 = GetAsmCurrent(currasm)
' <--------------------------------------------------------------->
If Not currasm1 = Nothing And currentsn = Nothing Then "NO SN"
ElseIf Not currentsn = Nothing Then
lastsn = currentsn
End If
Return lastsn
End Function
它總是拉入 0,而不是 1、2 等,具體取決于報告頁面上文本框中的程式集編號。
uj5u.com熱心網友回復:
Private currasm As Integer
Function GetAsmCurrent(ByVal currasm As Integer) As Integer
Return currasm
End Function
這個函式將回傳傳遞給它的值,而不是類級別的變數。代碼將始終在最近的范圍內尋找變數。回傳傳遞的內容有點愚蠢。同樣,正如我在評論中所述,值型別有一個默認值,在這種情況下0,Nothing除非可以為空,否則不能設定為。習慣上使用Private代替Dim類級別的變數。
Private lastsn As String = Nothing
Function GetSN(ByVal currentsn As String) As String
Dim currasm1 As Integer
currasm1 = GetAsmCurrent(currasm)
If Not currasm1 = 0 And currentsn = Nothing Then
currentsn = "NO SN"
ElseIf Not currentsn = Nothing Then
lastsn = currentsn
End If
Return lastsn
End Function
在這個函式GetAsmCurrent(currasm)中將傳遞類級別變數的值并回傳相同的值。currasm1 = currasm假設這兩個函式在同一個類中,可能更容易說。如上所述 currasm1 不能是Nothing.
這不會編譯"NO SN"。這可能意味著什么?您是否打算將該字串分配給某個變數?我假設您打算將其分配給currentsn.
如果您在同一個類中呼叫此函式,則它可以是Sub. 類中的任何方法都可以訪問類級別的變數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/314918.html
