我正在嘗試開發一個簡單的基于類的函式,該函式將修改由函式確定的先前值,即它是遞回關系。
本質上,我正在開發我自己的亂數生成器,它的作業方式與當前 Random 類的作業方式相同,即
Dim ran as New Random(123456)
For i = 0 To 9
MessageBox.Show(ran.NextDouble & " " & ran.Next(1,11))
Next
我可以使用基于類的方法簡單地通過發送一個值 ByRef 成功地做到這一點,但是正如您所知的方法呼叫,要修改的舊值需要放置在對方法的呼叫中。因此,我試圖克服對方法或全域型別變數的使用,而是希望實體化的類以某種方式記住當前值是什么。
下面的示例代碼嘗試_value在每次函式呼叫期間將值乘以2,因此預期結果將是 2、4、8、16 等。但是,即使最初將 2 發送到建構式,其值_value始終為回傳為零。
Class Example
Public _value As Integer
Public Sub New(ByVal _value)
End Sub
Public Function Value() As Integer
_value *= 2
End Function
End Class
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim x As New Example(2)
For i = 0 To 9
MessageBox.Show(x.Value)
Next
End Sub
uj5u.com熱心網友回復:
通常欄位是Private. 如果你想從你的類中公開資料,你可以使用Public Property.
更改 的引數名稱Sub New。如果適當限定,您的名字將起作用,但它令人困惑。你必須對傳入的值做一些事情!將其分配給您的領域_value。
您的函式沒有回傳值。它只是改變了 的值_value。如果您不回傳任何內容,請使用Sub. 將您的名稱更改為Function有意義的名稱。添加一條Return陳述句以將值發送回呼叫代碼。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim x As New Example(2)
For i = 0 To 9
MessageBox.Show(x.DoubleValue.ToString)
Next
End Sub
Class Example
Private _value As Integer
Public Sub New(ByVal Input As Integer)
_value = Input
End Sub
Public Function DoubleValue() As Integer
_value *= 2
Return _value
End Function
End Class
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/358006.html
上一篇:對溫度值和降水值的降水型別進行分類(python資料框)
下一篇:從陣列中獲取所有ID的引數
