Referenz - NAMESPACE
Syntax:
NAMESPACE Bereichsname
' Programmcode
END NAMESPACE
Typ: Anweisung
Kategorie: Deklaration
NAMESPACE definiert einen Codeteil als Namespace. Innerhalb eines Namespaces dürfen Symbole benutzt werden, die in einem anderem Namespace bereits benutzt wurden. Namespaces werden üblicherweise in Libraries verwendet, um keine Symbolbezeichner benutzen zu müssen, die der Anwender der Lib eventuell ebenfalls benutzen möchte. Wird z.B. in der Lib ein UDT 'foobar' verwendet, kann der User einen eigenen UDT 'foobar' definieren, wenn der UDT in der Lib innerhalb eines Namespaces definiert wurde.
Außerhalb eines Namespaces kann über die Syntax 'Bereichsname.Bezeichner' auf ein Element des Namespaces zugegriffen werden, oder indem der Namespace via USING in den 'Globalen Namespace' eingebunden wurde. Über WITH kann (noch) nicht auf die Elemente eines Namespaces zugegriffen werden. Innerhalb eines Namespaces dürfen ausschließlich Deklarationen stehen; sogenannte 'ausführbare' Anweisungen sind unzulässig.
FreeBASIC-Namespaces sind kompatibel zu GCC C++.
Folgende Anweisungen sind innerhalb eines Namespaces erlaubt:
Beispiel:
Namespace Forms
Type Dot ' Ein 2D-Punkt
x As Integer
y As Integer
End Type
/' Da sich die folgenden Zeilen
innerhalb des Namespaces befinden,
beziehen sich alle Aufrufe von 'Dot'
auf Forms.Dot. '/
Sub AdjustDot( ByRef pt As Dot, ByVal newx As Integer, ByVal newy As Integer )
pt.x = newx
pt.y = newy
End Sub
End Namespace
Type Dot ' Ein 3D-Punkt
x As Integer
y As Integer
z As Integer
End Type
Sub AdjustDot( ByRef PT As Dot, ByVal newx As Integer, ByVal newy As Integer, ByVal newz As Integer )
pt.x = newx
pt.y = newy
pt.z = newz
End Sub
Dim d1 As Dot
AdjustDot( d1, 1, 1, 1 )
Dim d2 As Forms.Dot
Forms.AdjustDot( d2, 1, 1 )
Sleep
Namespace kann man auch beliebig verschachteln, was durchaus nützlich sein kann:
Namespace erste
Dim As Integer variable = 1
End Namespace
Namespace zweite
Dim As Integer variable = 2
End Namespace
Namespace dritte
Dim As Integer variable = 3
Namespace verschachtelte
Dim As Integer variable = 4
End Namespace
End Namespace
Print erste.variable
Print zweite.variable
Print dritte.variable
Print dritte.verschachtelte.variable
Sleep
Unterschiede zu QB: neu in FreeBASIC
Unterschiede zu früheren Versionen von FreeBASIC: existiert seit FreeBASIC v0.16
Siehe auch:
USING (Namespace), EXTERN...END EXTERN, Datentypen und Deklarationen
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|