Я пытаюсь передать динамическое количество переменных в Sub с помощью ByRef;
По сути, я пытаюсь создать модуль, который можно легко импортировать в мои проекты и сделать обработку сохранения файла/ процесс загрузки автоматизирован.
Sub / Function будет принимать в качестве ссылок несколько переменных, а затем перебирать их, изменяя значение каждой из них.
Я понимаю, что упускаю важный момент в том, какСинтаксис Visual Basic работает, но я не смог понять, что мне нужно делать.
Код, который я написал для этого:
Public Sub LoadSaveToVars(ByRef KeyNamesAndVars() As Object, ByVal FileLoc As String = "")
If isEven(KeyNamesAndVars.Length) Then
Dim Contents As String = My.Computer.FileSystem.ReadAllText(FileLoc)
Dim isOnName As Boolean = True
Dim CurrentVal As String = ""
For i = 0 To KeyNamesAndVars.Length - 1
If isOnName Then
CurrentVal = GetStringValue(KeyNamesAndVars(i), Contents) 'Get the value of the key with the key name in the array
isOnName = False
Else
KeyNamesAndVars(i) = CurrentVal 'Set the variable referenced in the array to the value
isOnName = True
End If
Next
Else
Throw New ArgumentOutOfRangeException("The key names and variables supplied are not even.", "Error loading to variables!")
End If
End Sub
И вот как я пытаюсьчтобы использовать эту функцию:
Dim TestVar1 As String = ""
Dim TestVar2 As String = ""
LoadSaveToVars({"key1", TestVar1, "key2", TestVar2})
Чтобы сохранить этот вопрос в чистоте, я не включил другие функции, но я сделал неудачную попытку нарисовать то, что я хочу, чтобы: https://gyazo.com/eee34b8dff766401f73772bb0fef981a ВВ конце я хочу, чтобы TestVar1 был равен "val1", а TestVar2 был равен "val2" и чтобы можно было расширять его до динамического числа переменных.Это возможно?