Guten Morgen Hans,
wie schon geschrieben, es gibt in VB.Net keine Arrays als Konstanten.
Es gibt sicher ein paar mögliche Lösungen für Dein Problem. Leider kenne ich den Hintergrund nicht ganz genau und kann daher nur eine funktionierende Lösung anbieten, welche mutmaßlich auf Deine Frage passen sollte.
Da .Net komplett objektorientiert aufgebaut ist, wäre eine mögliche Lösung die folgende - wenn ich Dein Anliegen richtig verstanden habe:
Zuerst eine kleine Miniklasse bauen, in etwa so:
Code:
Public Class GEDCOMDateApproximatedColl
Inherits CollectionBase
Public Enum eGEDCOMApproximated
daExact
daAbout
daCalculated
daEstimated
End Enum
Public Sub New()
Me.Add("")
Me.Add("ABT")
Me.Add("CAL")
Me.Add("EST")
End Sub
Private Sub Add(ByVal Item As String)
Dim o As New GEDCOMApproximated
o.Value = Item
Me.InnerList.Add(o)
End Sub
Public Function GEDCOMDateApproximated(ByVal Item As eGEDCOMApproximated) As String
Dim o As GEDCOMApproximated = CType(Me.InnerList(Item), GEDCOMApproximated)
Return o.Value
End Function
Protected Class GEDCOMApproximated
Public Property Value As String
End Class
End Class
Sieht etwas aufwendig aus, geht sicher auch noch etwas kürzer.
Der Vorteil ist, dass alles in dieser Klasse gekapselt definiert und beliebig erweiterbar ist.
Deklaration und Aufruf funktioniert dann in etwa so:
Code:
'Deklaration erfolgt an der Stelle wie und wo dies benötigt wird:
Public DateApproximated As New GEDCOMDateApproximatedColl
'Der Aufruf in etwa so:
Private Sub Beispiel() Handles Button1.Click
MessageBox.Show(Me.DateApproximated.GEDCOMDateApproximated(GEDCOMDateApproximatedColl.eGEDCOMApproximated.daAbout))
End Sub
Mit der Hilfe von Intellisense muss man gar nicht so viel tippen wie es hier ausschaut...
Sicherlich kannst Du diesen Vorschlag noch verbessern, da Du ja das nötige Hintergrundwissen der von Dir benötigten Umsetzung besitzt.
Man könnte evtl. noch mit Generics, also einer 'List of T' arbeiten, muss dann aber auch wieder das Enum an anderer Stelle bauen. Deshalb habe ich das hier gleich alles gekapselt.
Gruß Carsten
PS:
Wobei man an den Namen noch etwas 'feilen' sollte...
Der Code sollte trotzdem nach menschlichem Ermessen lauffähig sein, wenn er denn richtig eingebaut wird.