V BNet: список элементов внутри класса, я не могу изменить значение для одного элемента - PullRequest
0 голосов
/ 07 мая 2020

Моя проблема: у меня есть класс и список других классов внутри:

Public Class Signal_Type_Read

    Private c_signal_count As Integer = 0  ' counter for read signals
    Private _items As List(Of Signal_Item)
    Private item As New Signal_Item

    Sub add_sig()
        c_signal_count += 1
        items.Add(item)
    End Sub
    Public Property items() As List(Of Signal_Item)
        Get
            Return _items
        End Get
        Set(value As List(Of Signal_Item))
            _items = value
        End Set
    End Property
    Function item_counter() As Integer
        item_counter = c_signal_count
    End Function
    Public Sub New()
        _items = New List(Of Signal_Item)
    End Sub
End Class

Public Class Signal_Item


    Private _original_name As String

    Public Property Original_name() As String
        Get
            Return _original_name
        End Get
        Set(value As String)
            _original_name = value
        End Set
    End Property

    'Many other properties
End Class

Моя проблема в том, когда я использую в al oop

Public Shared ReadSignals As New Signal_Type_Read 

//Part of a Loop to read cells values and store in the variable
ReadSignals.add_sig()
Dim c_index As Integer = ReadSignals.item_counter - 1                   
ReadSignals.items.item(c_index).Original_name = c_row.Cells(e_Signame).Value

Он всегда меняется свойство "Original_name" во всех элементах моей переменной. Где моя ошибка? Я хочу, чтобы был изменен только этот товар.

1 Ответ

0 голосов
/ 12 мая 2020

Я нашел причину проблемы ... Мне нужно создать новый экземпляр элемента в моей подпрограмме ADD_sig ()

 Sub add_sig()
    Dim s_item As New Signal_Item
    c_signal_count += 1
    items.Add(s_item)
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...