Как изменить значение параметра, переданного ссылкой в методе внутри класса?изменить значение параметра, переданного по ссылке
т.е.
Public Class Setting
Public Sub New(Optional ByRef target as String = Nothing)
_target = target
End Sub
Private Sub Go()
If Not IsNothing(_target) Then
_target = "New Value"
End If
End Sub
End Class
Использование:
Dim var1 as String = "Old Value"
Dim s as New Setting(var1)
s.Go()
После s.Go() Я ожидал получить:
var1 = "New Value"
Но я получаю:
var1 = "Old Value"
Благодаря
Почему бы просто не изменить его на ByVal, если вы хотите его изменить или, еще лучше, использовать функцию? – Plutonix
Это может быть несколько особый случай, потому что строки неизменяемы. Получаете ли вы такое же поведение, если вы изменили цель на Integer? – mclark1129
Я не думаю, что вы можете заставить его работать с вашим текущим дизайном. Либо передайте параметр ByRef в методе Go, либо вообще не используйте ByRef и возвращайте новое значение. –