【问题标题】:Retrieving information from a Class module VB.Net从类模块 VB.Net 中检索信息
【发布时间】:2015-12-10 17:11:30
【问题描述】:

目前我正在尝试将一堆整数/字符串存储在一个类中插入信息不是问题,但由于某种原因我无法弄清楚如何检索信息

    Public Class HardwareCards
         Public Property RackAmount() As Integer
    End class 

插入信息

Sub GrabAccessInfo()
            Dim Hardware As New HardwareCards
            Dim HardwareCollection As New Collection
            Hardware.RackAmount = rst("RackAmount").Value
End Sub

检索信息

Sub RackSlotAccess() 
    Dim type As Type = HardwareCards.GetType()
    Dim typename As Integer = type.FullName
    If HardwareCards.Hardware.DI32 >= 1 Then 'Inserting 32 bit Digital input card(s) 
        InsertDigAddresses(HardwareCards.Hardware.DI32, 32, "I", Slot, Rack)
    End If
End sub

我需要做什么才能从类模块中获取信息?

【问题讨论】:

  • A) 您在 GrabAccessInfo 中创建了一个本地硬件对象,因此该方法结束时它将消失(您的信息丢失)。收藏也一样。 Collection 至少需要更大的范围,因此当您在其中存储对象时(您没有),数据不会丢失。 B)帮自己一个忙,不要使用那个糟糕的 VB 集合,至少使用 List(of T)

标签: vb.net class


【解决方案1】:

您在调用 HardwareCards 时引用的是类型,而不是初始化对象。请注意在 GrabAccessInfo 中如何将 HardwareCards 的实例声明并初始化为变量 Hardware。为了访问您分配给对象变量 Hardware 的信息,您需要在 RackSlotAccess 中引用它。

Sub RackSlotAccess(hardware As HardwareCards)
    'Perform logic, evaluations on hardware. Example:
    Dim currentRackAmount = hardware.RackAmount
End Sub

【讨论】:

  • 那行得通,谢谢,但是如果 RackAmount 是一个数组,或者在这种情况下是一个集合,你如何得到每个数组(即 RackAmount 是列,我想在该列中存储每一行​​) For i = 1 to 50 Dim CurrentRackAmount = hardware.RackAmount(i) CurrentRackAmount = Do Something Next
猜你喜欢
  • 2016-03-17
  • 1970-01-01
  • 2011-06-01
  • 2014-02-09
  • 2014-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-01
相关资源
最近更新 更多