Varible mit Intellisensemöglichkeit

20/01/2010 - 17:11 von Peter Gast | Report spam
Ich habe eine Klasse, mit einem Member, das sehr viele (namentlich
zuordenbare) Werte annehmen kann. Für die Verzweigung innerhalb meiner App
möchte ich deshalb dieser Variable mittels Intellisense einfach und intuitiv
die Werte zuweisen können. Die nachfolgenden geographischen Beispiele machen
hoffentlich deutlich was ich meine. Natürlich sollte innerhalb der Rubriken
noch viel Erweiterungsspielraum sein.

myClass.Ziel = Europa.Schweiz
myClass.Ziel = Europa.Schweiz.Bern
myClass.Ziel = Amerika.NewYork.NewYork.Brooklyn
myClass.Ziel = Europa.Deutschland.Berlin.Kreuzberg


Wenn ich "Ziel" als Enum definiere, dann geht es in der Intellisense jedoch
nach dem Kontinent nicht mehr weiter, wenn ich einen tieferen Zugriff zB auf
ein Land oder noch tiefer auf eine Stadt benötige

Public Enum Ziel
Europa
Afrika
Amerika
End Enum

oder
 

Lesen sie die antworten

#1 Armin Zingler
20/01/2010 - 17:52 | Warnen spam
Peter Gast schrieb:
Ich habe eine Klasse, mit einem Member, das sehr viele (namentlich
zuordenbare) Werte annehmen kann. Für die Verzweigung innerhalb meiner App
möchte ich deshalb dieser Variable mittels Intellisense einfach und intuitiv
die Werte zuweisen können. Die nachfolgenden geographischen Beispiele machen
hoffentlich deutlich was ich meine. Natürlich sollte innerhalb der Rubriken
noch viel Erweiterungsspielraum sein.

myClass.Ziel = Europa.Schweiz
myClass.Ziel = Europa.Schweiz.Bern
myClass.Ziel = Amerika.NewYork.NewYork.Brooklyn
myClass.Ziel = Europa.Deutschland.Berlin.Kreuzberg


Wenn ich "Ziel" als Enum definiere, dann geht es in der Intellisense jedoch
nach dem Kontinent nicht mehr weiter, wenn ich einen tieferen Zugriff zB auf
ein Land oder noch tiefer auf eine Stadt benötige

Public Enum Ziel
Europa
Afrika
Amerika
End Enum

oder





Das funktioniert weder mit Enums noch mit statischen Klassenmembern weil
du sowohl Europa als auch Europa.Schweiz ansprechen können möchtest.
Auch mit geschachtelten Namespaces làsst es sich so nicht lösen.
Es bleiben somit nur Objekt(instanzen) übrig:

MustInherit Class Ort
End Class

Class Welt
Class _Europa
Inherits Ort

Class _Deutschland
Inherits Ort
Class _Bayern
Inherits Ort
End Class

Public ReadOnly Bayern As New _Bayern

End Class

Public ReadOnly Deutschland As New _Deutschland
End Class

Class _Amerika
Inherits Ort
End Class

Public Shared ReadOnly Europa As New _Europa
Public Shared ReadOnly Amerika As New _Amerika

End Class

'...

Dim ort As Ort

ort = Welt.Amerika
ort = Welt.Europa
ort = Welt.Europa.Deutschland
ort = Welt.Europa.Deutschland.Bayern


Armin

Ähnliche fragen