NAMESPACE

FreeBASIC-Referenz » Alphabetische Befehlsreferenz » N » NAMESPACE

Syntax:

NAMESPACE Bereichsname
' Programmcode
END NAMESPACE


Typ: Anweisung
Kategorie: Programmorganisation

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 Type 'foobar' verwendet, kann der User einen eigenen Type 'foobar' definieren, wenn der Type 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 'Point'
auf Forms.Point. '/

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 QuickBASIC: neu in FreeBASIC

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

Siehe auch:
USING (Namespace), EXTERN...END EXTERN