2015-12-10 6 views
0

В настоящее время я пытаюсь сохранить кучу целых чисел/строк в классе, вставляя информацию, это не проблема, но по какой-то причине я не могу понять, как получить информацияИзвлечение информации из модуля класса VB.Net

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 

Что мне нужно сделать, чтобы получить информацию из модуля класса?

+0

A) вы создали локальный объект Hardware в GrabAccessInfo, поэтому он исчезнет, ​​когда этот метод завершится (информация будет потеряна). То же самое для коллекции. Коллекции по крайней мере нуждаются в большем объеме, поэтому, когда вы храните в ней объект (вы этого не сделали), данные не будут потеряны. B) Сделайте себе одолжение и не используйте эту ужасную коллекцию VB, используйте «Список (T)» как минимум – Plutonix

ответ

0

Вы ссылаетесь на тип при вызове HardwareCards, а не на инициализированный объект. Обратите внимание, как в GrabAccessInfo вы объявляете и инициализируете экземпляр HardwareCards в переменную Hardware. Чтобы получить доступ к информации, присвоенной объектной переменной Hardware, вам нужно будет ссылаться на нее в RackSlotAccess.

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

. Это сработало спасибо, но если RackAmount - это массив или в этом случае коллекция, как вы ее получили каждый из них (то есть RackAmount - это столбец и в этом столбце я хочу хранить каждую строку) 'Для i = от 1 до 50 Dim CurrentRackAmount = hardware.RackAmount (i) CurrentRackAmount = Do Something Next' –

Смежные вопросы