一个奇怪的VB.NET赋值问题
有两个窗体代码分别如下:
form2关闭后str1的值仍然是0,而ListA的值为什么被更改了?
form1:
Public Class Form1
Private ListA As New List(Of String)
Private str1 As String
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ListB As List(Of String)
ListB = ListA
Dim str2 As String
str2 = str1
Dim f2 As New Form2
f2.list = ListB
f2.str = str2
f2.ShowDialog()
str2 = f2.str
Dim strList As String = ""
For i As Integer = 0 To 9
strList = strList & ListB.Item(i)
Next
MessageBox.Show(strList)
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
For i As Integer = 0 To 9
ListA.Add("0")
Next
str1 = "0"
End Sub
End Class
form2:
Public Class Form2
Private _list As List(Of String)
Public Property list() As List(Of String)
Get
Return _list
End Get
Set(ByVal value As List(Of String))
_list = value
End Set
End Property
Private _str As String
Public Property str() As String
Get
Return _str
End Get
Set(ByVal value As String)
_str = value
End Set
End Property
Private Sub Form2_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
For i As Integer = 0 To 9
list.Item(i) = "1"
Next
str = "1"
End Sub
End Class