我有一個奇怪的問題,我似乎無法弄清楚。更奇怪的是,我相當確定它在過去有效,但現在不再有效。
我有一個類,我將一個變數定義為 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.??????
uj5u.com熱心網友回復:
您應該宣告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 陳述句中也是如此。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/476493.html
上一篇:在C 中多載不同型別
