VB.Net | Есть ли способ ссылаться на динамическое количество переменных в качестве аргументов для функции / sub? - PullRequest
0 голосов
/ 24 мая 2019

Я пытаюсь передать динамическое количество переменных в 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" и чтобы можно было расширять его до динамического числа переменных.Это возможно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...