Autor Thema: Default Werte bei Übergabe an eine Methode  (Gelesen 1718 mal)

Offline Fragensteller

  • Junior Mitglied
  • **
  • Beiträge: 72
Default Werte bei Übergabe an eine Methode
« am: 28.11.11 - 12:07:36 »
In sämlichen Sprachen ist es ja möglich parameter an eine Methode zu übergeben. Ist diese nicht gesetzt können default werte gesetzt werden.
Bei VBA war es so...

Code
Function FF(A As Long, Optional B As Long = 2) As Variant
    If B = 0 Then
        FF = CVErr(xlErrDiv0)
    Else
        FF = A / B
    End If
End Function

Wie funktioniert das ganze bei Lotus Script?
Konnte dazu noch nichts finden.

Schon mal Danke.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Default Werte bei Übergabe an eine Methode
« Antwort #1 am: 28.11.11 - 12:15:27 »
Eine Schwäche von LotusScript: Optional gibt es nicht.

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Default Werte bei Übergabe an eine Methode
« Antwort #2 am: 28.11.11 - 13:16:09 »
Wenn ich solch eine Variabilität benötige, definiere ich für den "optionalen" Parameter einen Wert, der dann intern in der Routine mit dem Defaultwert übersetzt wird (z.B. wenn leer, dann Default). Der Parameter muss natürlich übergeben werden (bei erwarteten positiven Zahlen könnte ich einen negativen Wert dazu nutzen, um den Defaultwert anzusprechen).

Wenn es ganz flexibel sein soll, nehme ich nur einen Parameter (Variant) und übergebe eine Liste. Innerhalb der Routine kann ich dann das Vorhandensein von Parametern überprüfen.

z.B.

Dim liste List As String
liste ("Ort") = "Oslo"
liste ("Strasse") = "Karl Johans gate"
liste ("Hausnummer") = "1"

Call MeineFunktion (liste)

...

Sub MeineFunktion (liste As Variant)
   If Iselement (liste ("Ort")) Then
      -> Ort verwenden
   Else
      -> Defaultwert für Ort
...
 

Offline Fragensteller

  • Junior Mitglied
  • **
  • Beiträge: 72
Re: Default Werte bei Übergabe an eine Methode
« Antwort #3 am: 28.11.11 - 14:08:39 »
Wenn ich solch eine Variabilität benötige, definiere ich für den "optionalen" Parameter einen Wert, der dann intern in der Routine mit dem Defaultwert übersetzt wird (z.B. wenn leer, dann Default). Der Parameter muss natürlich übergeben werden (bei erwarteten positiven Zahlen könnte ich einen negativen Wert dazu nutzen, um den Defaultwert anzusprechen).

Wenn es ganz flexibel sein soll, nehme ich nur einen Parameter (Variant) und übergebe eine Liste. Innerhalb der Routine kann ich dann das Vorhandensein von Parametern überprüfen.

z.B.

Dim liste List As String
liste ("Ort") = "Oslo"
liste ("Strasse") = "Karl Johans gate"
liste ("Hausnummer") = "1"

Call MeineFunktion (liste)

...

Sub MeineFunktion (liste As Variant)
   If Iselement (liste ("Ort")) Then
      -> Ort verwenden
   Else
      -> Defaultwert für Ort
...
 

Das ne gute Idee...
Leere Parameter wolle ich vermeiden.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz