Объявление переменной динамически в VB.net - PullRequest
2 голосов
/ 21 декабря 2011

Есть ли способ объявить 70 различных переменных в цикле вместо объявления каждой?

Я хотел сделать что-то вроде ниже:

For i As Integer = 0 To 70
     Dim Para + i  AS OracleParameter
Next

Вместо объявления, как показано ниже:

Dim Param1 AS OracleParameter
Dim Param2 AS OracleParameter
Dim Param3 AS OracleParameter
…
Dim Param70 AS OracleParameter

Ответы [ 3 ]

9 голосов
/ 21 декабря 2011

Использовать массив:

Dim Param(69) As OracleParameter
For i As Integer = 0 To Param.Length - 1
    Param(i) = New OracleParameter(..)
    '' etc..
Next
1 голос
/ 21 декабря 2011

Обычно это делается с помощью массива:

Dim Para(70) As OracleParameter

Для доступа к элементу массива используйте Para (0), Para (1) и т. Д.

Если вам действительно нужны отдельные переменные, вы можете написать небольшую программу, которая распечатывает необходимые строки кода и копирует и вставляет их в ваш файл кода - но я не вижу причин для этого: -)

Пока, Дженс

1 голос
/ 21 декабря 2011

Я никогда не видел такого метода, но, глядя на него, почему бы вам не использовать список или KeyValuePair, используя индекс в качестве ключа?Я бы действительно рекомендовал использовать что-то подобное, даже если вы сохраняете слово «Param» как часть ключа.

Dim Parameters as New KeyValuePair(Of String, OracleParameter)

For i AS Integer = 0 To 70
     Parameters.Add("Param" & i.ToString(), New OracleParameter)
Next

К нему можно было бы получить доступ в любое время, используя (например)

Parameters("Param66").Value
...