Object eigenschappen “leegmaken”

Het leegmaken* van de eigenschappen van een object vanuit de classe kan met verwijzing
(* ik bedoel hiermee het op 0 zetten voor getallen en het “” zetten van een string)
naar zichzelf met “ME”:

' Class voorbeeld
PUBLIC LongName AS String
PUBLIC Amount AS Float
...
PUBLIC Empty
  WITH ME
  .LongName = ""
  .Amount = 0
  END WITH
...

In de . notatie komen de PROPERTY eigenschappen voor, je zou dus kunnen denken:


' Class voorbeeld
PUBLIC LongName AS String
PUBLIC Amount AS Float
 
PROPERTY Named AS String
PROPERTY READ Numbered AS Integer
...
PUBLIC Empty
  WITH ME
  .LongName = ""
  .Amount = 0
  .Named = ""
  .Numbered = 0
  END WITH
...

Je krijgt geen foutmelding voor .Named = “”
Je krijgt wel een foutmelding voor .Numbered = 0 (”is read only”)

Blijkbaar wordt dus de “automatische” _Write methode aangesproken, die niet bestaat voor het READ-only PROPERTY (enkel leesbaar).

Je moet in de plaats daarvan de eventueel intern gebruikte variabelen op nul zetten:


' Class voorbeeld
PUBLIC LongName AS String
PUBLIC Amount AS Float
 
PROPERTY Named AS String
PROPERTY READ Numbered AS Integer
 
PRIVATE $sNamed AS String
PRIVATE $iNumbered AS Integer
...
PUBLIC Empty
  WITH ME
  .LongName = ""
  .Amount = 0
  END WITH
  $sNamed = ""
  $iNumbered = 0
END
...
PRIVATE SUB Named_Write(Value AS String)
  $sNamed = Value
END

Leave a Reply

You must be logged in to post a comment.