Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Referenz - PROPERTY

Referenz-Navigation

 

Syntax A:

TYPE TypeName
    FeldName [(Indizes)] AS DatenTyp

    ' Wert abfragen
    DECLARE PROPERTY PropertyName [( [ BYREF | BYVAL ] Index AS DatenTyp)] AS DatenTyp

    ' Wert setzen
    DECLARE PROPERTY PropertyName ([ [ BYREF | BYVAL ] Index AS DatenTyp, ] _
                                     [ BYREF | BYVAL ] NeuerWert AS DatenTyp )
END TYPE

Syntax B:

PROPERTY TypeName.PropertyName [ (Parameterliste) ] [ AS DatenTyp ]
   ' Anweisungen
END PROPERTY

Typ: Anweisung
Kategorie: Klassen

PROPERTY erstellt eine Property einer Klasse. Dieses Schlüsselwort ist nur zulässig, wenn mit der Kommandozeilenoption Befehlsreferenzeintrag-lang fb compilliert wird.

Eine Property kann mit einem BefehlsreferenzeintragUDT-Attribut gleichgesetzt werden; jedoch wird bei jedem Zugriff auf dieses Attribut ein benutzerdefiniertes Unterprogramm aufgerufen. Informieren Sie sich zuerst über BefehlsreferenzeintragProzeduren in FreeBASIC, bevor Sie sich mit dem Thema Properties und Klassen befassen. Siehe dazu auch BefehlsreferenzeintragSUB, BefehlsreferenzeintragFUNCTION.
Ebenso nötig sind Kenntnisse über BefehlsreferenzeintragUDTs.

PROPERTY-Felder werden dazu genutzt, um auf Werte innerhalb eines UDTs zuzugreifen und bei jedem Zugriff eine bestimmte Prozedur aufzurufen.
So, wie Sie den Wert eines UDT-Attributs setzen und abfragen können, können auch Properties gesetzt und abgefragt werden. Die zugehörigen Prozeduren haben dabei denselben Bezeichner; sie unterscheiden sich lediglich durch die Anzahl der Parameter.

Innerhalb der Property kann auf die übrigen Attribute des zugeordneten UDTs über das Schlüsselwort BefehlsreferenzeintragTHIS zugegriffen werden.

Bei der Bearbeitung der Attribute des UDTs mit mathematischen Operatoren (+, -, ...) kann das Prinzip "Operator Overloading" angewandt werden; siehe hierzu BefehlsreferenzeintragOPERATOR.

Beispiel: Abfragen und Setzen von Werten eines UDTs mittels Properties

Type Vector2D
  As Single x, y
  Declare Operator Cast() As String
  Declare Property Length() As Single
  Declare Property Length( ByVal new_length As Single )
End Type

Operator Vector2D.CAST () As String
  Return "(" & x & ", " & y & ")"
End Operator

Property Vector2D.Length() As Single
  Length = Sqr( x * x + y * y )
End Property

Property Vector2D.Length( ByVal new_length As Single )
  Dim m As Single = Length
  If m <> 0 Then
    '' neuer_Vektor = alter_Vektor / laenge * neue_laenge
    x *= new_length / m
    y *= new_length / m
  End If
End Property

Dim a As Vector2D = ( 3, 4 )

Print "a = "; a
Print "a.Length = "; a.Length
Print

a.Length = 10

Print "a = "; a
Print "aLength = "; a.Length

Sleep

Ausgabe:

a = (3, 4)
a.Length =  5

a = (6, 8)
a.Length =  10

Mittels der Schlüsselwörter BefehlsreferenzeintragPRIVATE und BefehlsreferenzeintragPUBLIC kann festgelegt werden, von welchen Programmpunkten aus auf bestimmte Attribute des UDTs zugegriffen werden darf. Damit kann erreicht werden, dass bestimmte Attribute nicht direkt, sondern nur über die bereitgestellten Properties gesetzt oder ausgelesen werden können. Die Property kann dann beispielsweise Zugriffsbeschränkungen wie Arraygrenzen überprüfen. Siehe dazu auch das Codebeispiel Zugriffskontrolle über Properties.

Unterschiede zu QB:
Properties und Methoden existieren nur in VisualBASIC, jedoch existiert dort keine Möglichkeit, solche selbst zu erstellen.

Unterschiede zu früheren Versionen von FreeBASIC: existiert seit FreeBASIC v0.17

Siehe auch:
BefehlsreferenzeintragTYPE (UDT), BefehlsreferenzeintragSUB, BefehlsreferenzeintragFUNCTION, BefehlsreferenzeintragOPERATOR, BefehlsreferenzeintragTHIS, BefehlsreferenzeintragPUBLIC, BefehlsreferenzeintragPRIVATE, BefehlsreferenzeintragObjektorientierung


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 08.08.2007 von Redakteurnemored angelegt.
  • Die aktuellste Version wurde am 05.08.2020 von Redakteurnemored gespeichert.
  Versionen Versionen