FreeBasic This Keyword
last modified June 23, 2025
The FreeBasic This
keyword is a reference to the current object
instance within type methods. It allows access to the object's members and
helps distinguish between local and member variables.
Basic Definition
In FreeBasic, This
is an implicit reference to the current
object instance when working with user-defined types (UDTs). It's similar
to this
in C++ or self
in Python.
The This
keyword is primarily used within type methods to
access the object's fields and methods. It helps resolve naming conflicts
between parameters and member variables.
Accessing Member Variables
This example shows basic usage of This
to access member variables.
Type Person fname As String age As Integer Declare Sub SetInfo(fname As String, age As Integer) Declare Sub PrintInfo() End Type Sub Person.SetInfo(fname As String, age As Integer) This.fname = fname This.age = age End Sub Sub Person.PrintInfo() Print "Name: "; This.fname Print "Age: "; This.age End Sub Dim p As Person p.SetInfo("John Doe", 35) p.PrintInfo()
Here, This
is used to distinguish between the parameter
fname
and the member variable fname
. Without
This
, the assignment would be ambiguous. The PrintInfo
method also uses This
for clarity.
Returning Current Object
This
can be used to return the current object from a method.
This allows for method chaining, where multiple methods can be called on the
same object in a single expression.
Type Counter value As Integer Declare Function Increment() As Counter Ptr Declare Sub PrintValue() End Type Function Counter.Increment() As Counter Ptr This.value += 1 Return @This End Function Sub Counter.PrintValue() Print "Value: "; This.value End Sub Dim c As Counter c.Increment()->Increment()->PrintValue()
In this example, the Increment
method modifies the value
field of the Counter
type and returns a pointer to the current
object using This
. The PrintValue
method accesses the
value
field using This
to print it to the console.
Passing objects
The This
keyword can also be used to pass the current object
as a parameter to other functions or methods. This is useful when you want
to modify the object from an external function or when you need to pass
the object to another method for further processing.
Type Point x As Integer y As Integer Declare Sub Move(dx As Integer, dy As Integer) Declare Sub Show() End Type Sub Point.Move(dx As Integer, dy As Integer) This.x += dx This.y += dy End Sub Sub Point.Show() Print "Point: ("; This.x; ", "; This.y; ")" End Sub Sub Translate(ByRef p As Point, tx As Integer, ty As Integer) p.Move(tx, ty) End Sub Dim pt As Point pt.x = 10 pt.y = 20 Translate(pt, 5, 5) pt.Show()
This example demonstrates passing the current object pt
to the
Translate
function. Inside Translate
, the
Move
method is called on pt
, which modifies its
coordinates. The Show
method then prints the updated coordinates of
the point.
This in Constructor Methods
This
can be used in constructor methods to initialize fields.
Type Rectangle width As Integer height As Integer Declare Constructor(w As Integer, h As Integer) Declare Function Area() As Integer End Type Constructor Rectangle(w As Integer, h As Integer) This.width = w This.height = h End Constructor Function Rectangle.Area() As Integer Return This.width * This.height End Function Dim rect As Rectangle = Rectangle(10, 20) Print "Area: "; rect.Area()
The constructor uses This
to assign parameter values to member
variables. This pattern ensures proper initialization of the object's state.
The Area
method then uses these values for calculation.
This tutorial covered the FreeBasic This
keyword with practical
examples showing its usage in different scenarios.
Author
List all FreeBasic Tutorials.