Colecciones personalizadas...

01/07/2004 - 19:56 por Kravek | Informe spam
Qúe método debo sobreescribir y como para que al heredar de un SortedList me
funcione el "for each"?

Yo lo intento así pero me da error de conversión de tipos:

Public Shadows Property Item(ByVal key As Integer) As Entidad

Get

Return CType(MyBase.Item(key), Entidad)

End Get

Set(ByVal Value As Entidad)

MyBase.Item(key) = Value

End Set

End Property

Public Shadows Property Item(ByVal E As Entidad) As Entidad

Get

Return CType(MyBase.Item(E), Entidad)

End Get

Set(ByVal Value As Entidad)

MyBase.Item(E) = Value

End Set

End Property
 

Leer las respuestas

#1 Tristan
01/07/2004 - 21:12 | Informe spam
Para que una clase sea accesible mediante ForEach, debe implementar el
interface IEnumerable. Debes añadir a tu clase un método GetEnumerator que
devuelve a su vez el enumerador del SortedList.

De todas formas, yo utilizaría otro enfoque puesto que Shadows es algo que
evitaría siempre. Prueba esta clase:

Class StringSortedList
Implements IEnumerable

Private lista As New SortedList

Public Sub Add(key As Integer, value As String)
lista.Add(key, value)
End Sub

Default Public Property Item(key As Integer) As String
Get
Return lista(key).ToString()
End Get
Set(ByVal Value As String)
lista(key) = Value
End Set
End Property

Public Function GetEnumerator() As IEnumerator Implements
IEnumerable.GetEnumerator
Return lista.GetEnumerator()
End Function
End Class

Juan Carlos Badiola
MVP - C#

Preguntas similares