シナリオの奇妙さにもかかわらず、宿題の質問ではありません。例を単純化するために、使用している実際のオブジェクトを置き換えただけです。
これでここから始めましたが、続行する方法がわかりません。コレクションを含むクラスを作成しようとしていますが、の世界で迷子になってIEnumerator
いIEnumerable
ます。クラスがあるとしましょう:
Public Class BakedBean
Private Shape As String
Private Variety As String
Private Flavour As String
'etc
End Class
のコレクションを表す別のクラスBakedBean
:
Public Class TinOfBeans
'?
End Class
Beans
クラスをコレクションとして取得できるようにしたいTinOfBeans
ので、特定のコレクション型に縛られることなく、次のような呼び出しを行うことができます。
Dim myTin As New TinOfBeans()
myTin.Add(New BakedBean(...))
For Each bean As BakedBean in myTin
'...
Next
myTin(0).Flavour = "beany"
私は と を見てきましたがIEnumerable
、IEnumerator
これまでのところこれだけありますが、非常に迷っています:
BakedBean クラス
Public Class BakedBean
Private Shape As String
Private Variety As String
Private Flavour As String
'etc
End Class
BeansEnumerator クラス
Public Class BeansEnumerator
Implements IEnumerator
Private Position As Integer = -1
Public ReadOnly Property Current As Object Implements System.Collections.IEnumerator.Current
Get
'???
End Get
End Property
Public Function MoveNext() As Boolean Implements System.Collections.IEnumerator.MoveNext
'???
End Function
Public Sub Reset() Implements System.Collections.IEnumerator.Reset
Position = -1
End Sub
End Class
TinOfBeans クラス
Public Class TinOfBeans
Implements IEnumerable
Private beansEnum As BeansEnumerator
Public Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator
Return beansEnum
End Function
End Class
この時点で、私は結び目にかなり縛られており、先に進む方法がわかりません (または、最初に述べたように、これが正しいアプローチであるかどうかもわかりません)。助言がありますか?