0
我想知道如何设置我通过引用传递的变量的值。在这个例子中,我传递一个整数,但在应用程序中,它可能是一个不同的对象。设置通过引用传递的整数的值
不管怎么说,这里是发生了什么事的简短摘要:
- 计划在次主(开始),和一个新的表单实例提出。表单的构造函数是一个ByRef参数。
- 执行New()子句后,该参数保存在表单实例的私有成员中。
- 用户按下一个按钮,并为该私有成员分配一个值。
- 为什么原始结果也不一样呢? (它仍然是0,而不是5555)
代码示例:
Option Strict On
Public Class SpecialForm
Inherits System.Windows.Forms.Form
Private WithEvents _Btn As System.Windows.Forms.Button = Nothing
Private _Result As Integer
Public Sub New(ByRef Out_Result As Integer)
_Result = Out_Result
End Sub
Private Sub SpecialForm_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
_Btn = New System.Windows.Forms.Button
With _Btn
'Set size
'Set location
'Set text
'etc
End With
Me.Controls.Add(_Btn)
End Sub
Private Sub Btn_Click(sender As Object, e As System.EventArgs) Handles _Btn.Click
_Result = 5555
Me.Close()
End Sub
End Class
Module EntryPoint
Public Sub Main()
Dim result As Integer
Using mySpecialForm As New SpecialForm(result)
mySpecialForm.ShowDialog()
End Using
MsgBox(String.Format("The result is {0}", result)) 'DEBUG MESSAGE
End Sub
End Module
也许我做错了,或者也许是语言的限制。但有没有办法做到这一点,而不使用全球?
整数是值类型 - 当你指定一个到另一个值复制,但两者之间没有联系。 – 2015-02-10 21:10:42