保存对私有字段的引用(vb.net)

时间:2013-08-04 20:22:09

标签: vb.net reference

我对VB.NET编程很陌生,我有这种情况:

我有一个类Foo和一些私有字段(数字可以增加,所以我想编写一些灵活的代码)及其相应的公共只读属性。为了更新私有字段的值,我必须在OPC服务器中读取它们。当我注册到OPCServer项时,我得到一个名为ServerHandle的整数来识别它。然后,当我读取OPC服务器时,我以字典的形式(serverHandles作为键)获得了几个带有相应值的ServerHandles。

我想在创建对象时创建的是一个辅助对象列表(我称之为Item),只有两个公共字段,ServerHandle和对私有字段的引用,所以当我得到更新值的字典时,我可以做这样的事情:

Public Class Foo
    Private field1 As Double
    Private field2 As Double
    Private listOfitems As List(Of Item)

    Private Sub UpdateValues(dictionaryOfValues As Dictionary(Of Integer, Double))
        For Each item As Item In listOfitems
            item.Field = dictionaryOfValues(item.ServerHandle)
        Next
    End Sub
End Class


Public Class Item
    Public Field As Object
    Public ServerHandle As Integer
End Class

我知道不可能像这样保存对私有字段的引用......但我想知道是否有某种方法可以做一些类似于我正在尝试的事情。

如果没有......你有什么建议我怎么能这样做? (我觉得我不必要地使我的解决方案复杂化了。)

非常感谢!

1 个答案:

答案 0 :(得分:0)

您的public课程中需要某种类型的Foo曝光对象,我建议为listOfItems制作一个只读公共属性,如下所示:

Public Class Foo
    Private field1 As Double
    Private field2 As Double
    Private listOfitems As List(Of Item)

    Public Property ListOfItems() As List(Of Integer)
    Get
    Return listOfitems
    End Get
    End Property

    Private Sub UpdateValues(dictionaryOfValues As Dictionary(Of Integer, Double))
        For Each item As Item In listOfitems
            item.Field = dictionaryOfValues(item.ServerHandle)
        Next
    End Sub
End Class