Objektklasse und Listenklasse dazu
Public Class Objekt
Private mKey As String
Private mEigenschaft As String
...
Public Property Key() As String
Get
Return mKey
End Get
Set(ByVal value As String)
mKey = value
End Set
End Property
Public Property Eigenschaft() As String
Get
Return mEigenschaft
End Get
Set(ByVal value As String)
mEigenschaft = value
End Set
End Property
...
End Class
-----------------------------------------------
Public Class Liste
'Sammlung der Objekte
Private mListe As Dictionary(Of String, Objekt)
Public Sub New()
mListe = New Dictionary(Of String, Objekt)
...
End Sub
Default Public ReadOnly Property Item(ByVal key As String) As Objekt
' Erlaubt Zugriff auf ein Objekt (und dessen Member)
' Nothing, wenn der Key nicht gefunden wurde
Get
Return mListe(key)
Else
Return Nothing
End If
Catch ex As Exception
MsgBox("(Item.Get) " & key & " liefert folgenden Fehler: " & ex.Message)
Return Nothing
End Try
End Get
End Property
Public ReadOnly Property Count() As Long
Get
Return mListe.Count
End Get
End Property
Public ReadOnly Property Keys() As Dictionary(Of String, Objekt).KeyCollection
Get
Return mListe.Keys
End Get
End Property
Public Sub Clear()
mListe.Clear()
End Sub
Public Sub Add(ByVal key As String, ByVal objekt As Objekt)
Try
If ContainsKey(key) Then
MsgBox("Objekt " & key & " gibt es bereits in der Liste.")
Exit Sub
'Alternativ Remove aufrufen
End If
'füge das Objekt zu
mListe.Add(key, objekt)
Catch ex As Exception
MsgBox("Objekt " & key & " konnte nicht zugefügt werden.")
Exit Sub
End Try
End Sub
Public Function Remove(ByVal key As String) As Boolean
Try
mListe.Remove(key)
Catch ex As Exception
MsgBox(key & " liefert folgenden Fehler: " & ex.Message)
Return False
End Try
Return True
End Function
Public Function ContainsKey(ByVal key As String) As Boolean
If key = "" Then
MsgBox("Key-Parameter darf nicht leer sein")
Return False
End If
If mListe.Count < 1 Then
'msgBox("Es gibt keine Ressourcen in der Liste")
Return True?False 'kann gut oder schlecht sein
End If
If Not mListe.ContainsKey(key) Then
MsgBox("Ressource " & key & " gibt es nicht in der Liste")
Return True?False
End If
Return True
End Function
'Vielleicht auch:
Public Sub Fill()
Dim keyList As List(Of String)
keyList = ... 'aus DB? Datei?
If keyList Is Nothing Then
MsgBox"Keine Objekte gefunden")
Else
For Each key As String In keyList
Dim obj As New Objekt 'Hilfsvariable
obj.Key = key
obj.Eigenschaft = ... 'aus DB? Datei?
...
mListe.Add(key, obj)
Next
End If
End Sub
...usw.
End Class
-------------------------------------------------
'Anwendung in For-Each-Schleife:
Dim Liste As Liste
Liste.Fill()
...
For Each k As String In Liste.Keys
MsbBox(Liste(k).Eigenschaft)
Next
Next
...oder...
For i As Integer = 0 To Liste.Count - 1
Dim Eig As String = Liste(i).Eigenschaft
MsgBox(Eig)
Next
...
Labels: Add, ContainsKey, Item, Listenklasse, Objektklasse


0 Kommentare:
Kommentar veröffentlichen
Links zu diesem Post:
Link erstellen
<< Startseite