如何在程序执行期间动态声明变量?

时间:2013-03-19 15:16:01

标签: variables declaration var vb.net

我正在使用VS 2012。

在我的代码运行时,我无法弄清楚如何动态声明变量。我正在尝试编写一个程序来提取EMS发送到网站的数据。该网站每隔几秒更新一次,并且每个发布的呼叫都有唯一的ID号。我想使用每个调度中的唯一ID号,并使用该唯一ID号声明一个新的事件变量,并将其添加到活动调度的集合中。我唯一想知道的部分是,如何在发布时为每个调度声明一个变量,并用其唯一的ID号命名?

类似的东西:

Structure Incident
  Dim id As Integer

  Dim numer As String
  Dim date1 As String
  Dim time As String
  Dim box As String
  Dim type As String
  Dim street As String
  Dim crosstreet As String
  Dim location As String
  Dim announced As Boolean
  Dim complete As Boolean
End Structure

UniqueIDstringfromwebsite = "1234"

Dim (code to get variable declared with unique ID as variable name) as incident

这是我的第一篇文章,我不能让codeample在帖子中正常工作。

2 个答案:

答案 0 :(得分:1)

您可以使用Dictionary来识别您的var:

Dim myVar As New Dictionary(Of Integer, Incident)

UniqueIDstringfromwebsite = 1234
myVar.Add(UniqueIDstringfromwebsite, New Incident)

我认为你不能用一个dinamically的值来改变一个变量的名称,而且这个名称在它可能有用时不会得到。

并且,通过这种方式,最好将您的结构变成一个类。

答案 1 :(得分:1)

这是我的第一个答案 - 所以你的公司很好!

您不需要实现类而不是结构 - 这样您就可以实现构造函数。我不认为你想创建一个带有ID作为名称的变量,但你应该将ID添加到dispatches集合中(这可能是一个列表(事件):

e.g。

Public Class Incident

     'define private variables

     Private _id as integer
     Private _number as string
     Private _date1 as String
     Private _time as String
     'etc...

     'define public properties

    Public Property Number as string
        Get 
            Return _number
        End Get
        Set (value as string)
            _number = value
        End Set
    End Property

    'Repeat for each Public Property

    'Implement Constuctor that takes ID
    Public Sub New(id as integer)
        _id = id
        'code here to get incident properties based on id
    End Sub

End Class

希望这有帮助!