次の例では、ByRef または ByVal の両方の関数で List(T) オブジェクトを渡すかどうかは重要ですか?
List は参照型なので、オブジェクト ByVal を渡しても常に値が変更されるというのは正しいですか。
リストが更新されているため、関数「ListChanged」でオブジェクトbyRefを渡すとよいでしょうか。
Public Class MyClass_
Public Sub TestMethod()
Dim List_1 As New List(Of Integer)()
Dim List_2 As New List(Of Integer)()
List_1.Add(100)
List_2.Add(50)
List_1 = ActualListNotChanged(List_1) '---101
List_2 = ListChanged(List_2) '---50,51
End Sub
Private Function ActualListNotChanged(ByVal lst As List(Of Integer)) As List(Of Integer)
Dim nList As New List(Of Integer)()
For Each item As Integer In lst
If item <> 50 Then
nList.Add(101)
End If
Next item
Return nList
End Function
Private Function ListChanged(ByVal lst As List(Of Integer)) As List(Of Integer)
lst.Add(51)
Return lst
End Function
End Class