Class 中的 SortedSet 未正确公开
SortedSet in Class does not expose correctly
我有一个奇怪的问题,我似乎无法弄清楚。更奇怪的是,我相当确定它在过去有用,但现在不行了。
我有一个 class,我在其中将变量定义为 SortedSet。在一个函数中,我可以引用变量,但它的 SortedSet 属性没有暴露。如果我仍然使用它们,其中一些可以工作,而另一些则不能。如果我在我的函数中创建该变量,一切都会按预期工作。
这是代码:
Public Class MyTest
Public MySortedSet = New SortedSet(Of String)()
Public Sub New()
Dim MySortedSet2 = New SortedSet(Of String)()
'Constructor. To use this, add Dim MyTest As MyTest to the Form1_load sub.
Me.MySortedSet.add("Test")
For Each Item In Me.MySortedSet
MsgBox(Item) 'This does print Test
Next Item
Me.MySortedSet.add '.add not exposed
MySortedSet2.add '.add is exposed
End Sub
End Class
请参见下面的屏幕截图。第一个例子只有 4 个项目,第二个例子有完整的参数列表。我需要使用第一个示例修复此问题,因此 ElementAt 可以正常工作。它适用于第二个示例,但不适用于第一个示例。它给出了 ElementAt 不是该对象的一部分的错误。
如何获取 me.MySortedSet.?????
的完整参数列表?
您应该将 MySortedSet
声明为 属性:
Public Class MyTest
Public Property MySortedSet As New SortedSet(Of String)()
Public Sub New()
Dim MySortedSet2 As New SortedSet(Of String)()
Me.MySortedSet.Add("Test")
For Each item As String In Me.MySortedSet
Debug.WriteLine(item)
Next item
Me.MySortedSet.Add("Test")
MySortedSet2.Add("Test")
End Sub
End Class
您还应该在每次声明变量时指明变量类型,即使在 For Each 语句中也是如此。
我有一个奇怪的问题,我似乎无法弄清楚。更奇怪的是,我相当确定它在过去有用,但现在不行了。
我有一个 class,我在其中将变量定义为 SortedSet。在一个函数中,我可以引用变量,但它的 SortedSet 属性没有暴露。如果我仍然使用它们,其中一些可以工作,而另一些则不能。如果我在我的函数中创建该变量,一切都会按预期工作。
这是代码:
Public Class MyTest
Public MySortedSet = New SortedSet(Of String)()
Public Sub New()
Dim MySortedSet2 = New SortedSet(Of String)()
'Constructor. To use this, add Dim MyTest As MyTest to the Form1_load sub.
Me.MySortedSet.add("Test")
For Each Item In Me.MySortedSet
MsgBox(Item) 'This does print Test
Next Item
Me.MySortedSet.add '.add not exposed
MySortedSet2.add '.add is exposed
End Sub
End Class
请参见下面的屏幕截图。第一个例子只有 4 个项目,第二个例子有完整的参数列表。我需要使用第一个示例修复此问题,因此 ElementAt 可以正常工作。它适用于第二个示例,但不适用于第一个示例。它给出了 ElementAt 不是该对象的一部分的错误。
如何获取 me.MySortedSet.?????
的完整参数列表?
您应该将 MySortedSet
声明为 属性:
Public Class MyTest
Public Property MySortedSet As New SortedSet(Of String)()
Public Sub New()
Dim MySortedSet2 As New SortedSet(Of String)()
Me.MySortedSet.Add("Test")
For Each item As String In Me.MySortedSet
Debug.WriteLine(item)
Next item
Me.MySortedSet.Add("Test")
MySortedSet2.Add("Test")
End Sub
End Class
您还应该在每次声明变量时指明变量类型,即使在 For Each 语句中也是如此。