With : EndWith


Syntax
With <Ausdruck>
  ...
EndWith
Beschreibung
With : EndWith Blöcke können mit Struktur-Feldern eingesetzt werden, um die Menge an Programmcode zu reduzieren und seine Lesbarkeit zu verbessern.

Dies ist eine Compiler-Direktive und funktioniert ähnlich wie ein Makro, d.h. der angegebene 'Ausdruck' wird automatisch vor allen Backslash '\'-Zeichen eingefügt, denen kein Leerzeichen oder ein Operator vorangeht. Der Code verhält sich identisch zu seiner erweiterten Version.

With : EndWith Blöcke können nicht verschachtelt werden, da dies zu nur schwer zu findenden Bugs führen kann, wenn es mehrere - mit verschiedenen Werten ersetzte - Anweisungen gibt.

Beispiel

  Structure Person
    Name$
    Age.l
    Size.l
  EndStructure

  Friend.Person
  
  With Friend
    \Name$ = "Yann"
    \Age   = 30
    \Size  = 196
    
    Debug \Size+\Size
  EndWith
    

Beispiel: Komplexes Beispiel

  Structure Body
    Weight.l
    Color.l
    Texture.l
  EndStructure

  Structure Person
    Name$
    Age.l
    Body.Body[10]
  EndStructure

  Friend.Person
  
  For k = 0 To 9
    With Friend\Body[k]
      \Weight = 50
      \Color  = 30
      \Texture = \Color*k
      
      Debug \Texture
    EndWith
  Next