Lotus Notes / Domino Sonstiges > Tipps und Tricks
[LS-Tipp] Select Case
TMC:
Select Case ist ein sehr mächtiges Werkzeug, aber leider ist es in der Designerhelp nicht komplett dokumentiert.
Select Case nimmt nicht nur einzelne Bedingungen, sondern auch Listen oder etwa Vergleichsoperatoren.
Beispiele für Zahlen
[*]Case 10: Msgbox "10"
[*]Case 1,3,7: Msgbox "1, 3 oder 7"
[*]Case 12 to 30: Msgbox "Wert zwischen 12 und 30"
[*]Case Is >= 40: Msgbox "Wert ist größer/gleich 40"
[/list]
Und es geht noch weiter: auch Strings können abgearbeitet werden.
Beispiele für Strings
[*]Case "a" to "z": Msgbox "a, b, c, .... oder z wurde ausgewählt"
[*]Case "a:" to "z:" Msgbox "a:, b:, c:, .... oder z: wurde ausgewählt"
[/list]
Beim 2. Beispiel ist bemerkenswert, dass ein Doppelpunkt am Buchstaben hängt, und trotzdem funktioniert das scheinbar.
Vorteil des ganzen:
Man kann sich viel Code (z.B. if-Verschachtelungen etc. ersparen).
Ich vermute, es gibt noch mehr Möglichkeiten. Bitte immer her damit ;)
cococo69:
Hallo Matthias,
das klingt ja hoch interessant! Und wo ist hier der Haken? Irgendwo muss ja was sein, sonst wäre dies doch bestimmt dokumentiert...!?
Gruß Armin
TMC:
Armin, jo, den Haken hab ich auch schon gesucht ;D
Ich vermute mal Performance, aber konnte subjektiv nix negatives feststellen.
Aber durchaus etwas seltsam, da normalerweise Lotus Notes sehr gut dokumentiert ist, und es nur wenige Ausnahmen gibt, wo das nicht so ist. Auch die ND6-Help ist nicht wirklich mitteilsamer bei Select Case.
Hmm, wäre schon fast was für einen Best Practices - Artikel, wenn wir keine Haken finden :D
koehlerbv:
Ich kann noch nicht entdecken, was davon undokumentiert ist (ausser dem Doppelpunkt - von solchen Stunts würde ich die Finger lassen).
Und Matthias hat vollkommen wahr: Select Case ist ein mächtiges Werkzeug. Genauso wie Listen ;D Die haben mir gerade gestern wieder das Leben mächtig erleichtert ;)
Bernhard
PS: Wegen Haken - ist nicht. Wegen Performance - der Code wird nativ umgesetzt und ausgeführt, ist ergo schneller als andere Konstrukte, die zum Beispiel sowas wie "Case 15..50" ausdrücken.
TMC:
--- Zitat von: koehlerbv am 27.02.05 - 19:57:41 ---Ich kann noch nicht entdecken, was davon undokumentiert ist (ausser dem Doppelpunkt - von solchen Stunts würde ich die Finger lassen).
--- Ende Zitat ---
Hmm, ja eben die Sache mit dem Doppelpunkt meinte ich, aber generell Strings a....z. Jedenfalls gibt es kein Beispiel in der Help hierzu und auch sonst wird es IMHO nicht explizit erwähnt. Select Case weiß aber, dass nach A ein B kommt, usw.
Ich nehme Select Case übrigens auch her, um If-Abfragen zu vermeiden.
Selbst bei:
--- Code: ---If Bedingung = 1 Then
'Aktion
Elseif Bedingung = 2 Then
'Aktion 2
End If
--- Ende Code ---
nehme ich oft lieber select case, da IMHO übersichtlicher. Und ich baue immer einen "Case Else" ein. Auch wenn dort nix passiert, aber dann kommentiere ich das im Case Else.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln