Hhmm, wie schaut das dann in C# genau aus?
Ein Enum ist in VB ein Enum. Du kannst den Wert aber auch als String ausgeben, was aber bei Leerstrings wie hier im Beispiel nicht funktioniert.
Zu Deinem PS:
Nein, da hast Du recht, habe ich vorhin nicht dran gedacht.
Jetzt vollständig gekapselt, von Außen nur noch GetValue und das Enum erreichbar:
Habe der Einfachheit halber noch eine Klasse als Hülle drum gelegt...
Code:
Public Class Approx
Private o As New GEDCOMDateApproximatedColl
Public Enum eGEDCOMApproximated
daExact
daAbout
daCalculated
daEstimated
End Enum
Public Function GetValue(ByVal Item As eGEDCOMApproximated) As String
Return o.GEDCOMDateApproximated(Item)
End Function
Private Class GEDCOMDateApproximatedColl
Inherits CollectionBase
Friend Sub New()
Me.Add("")
Me.Add("ABT")
Me.Add("CAL")
Me.Add("EST")
End Sub
Friend Function GEDCOMDateApproximated(ByVal Item As eGEDCOMApproximated) As String
Dim o As GEDCOMApproximated = CType(Me.InnerList(Item), GEDCOMApproximated)
Return o.Value
End Function
Private Sub Add(ByVal Item As String)
Dim o As New GEDCOMApproximated
o.Value = Item
Me.InnerList.Add(o)
End Sub
Friend Class GEDCOMApproximated
Friend Property Value As String
End Class
End Class
End Class
Deklaration und Aufruf so:
Code:
'Deklaration wie und wo benötigt:
Public GEDCOMDateApproximated As New Approx
'Aufruf in etwa so:
Private Sub Beispiel() Handles Button1.Click
MessageBox.Show(Me.GEDCOMDateApproximated.GetValue(Approx.eGEDCOMApproximated.daAbout))
End Sub
Gruß Carsten