Обеспечивает явный доступ к элементам базового типа в нестатических методах
Type
Синтаксис
Base.member
Base [ .Base ... ] .member
Описание
Base предоставляет возможность явного доступа к элементам
конкретного базового типа, в контексте не-статических методов определяемого
пользователем типа, производного от другого типа с помощью
Extends.
Использование
Base неоднократно, как
base.base.base.member,
дает возможность получить доступ к любому нужному базовому типу, в случае,
если есть несколько уровней наследования.
Base особенно полезен, когда элемент базового типа затмевается
локальной переменной или элементом производного типа, используя тот же
идентификатор.
Base в этом случае позволяет однозначно
получить доступ к базовому типу.
Пример
Type Parent
As Integer a
Declare Constructor(ByVal As Integer = 0)
Declare Sub show()
End Type
Constructor Parent(ByVal a As Integer = 0)
This.a = a
End Constructor
Sub Parent.show()
Print "parent", a
End Sub
Type Child extends Parent
As Integer a
Declare Constructor(ByVal As Integer = 0)
Declare Sub show()
End Type
Constructor Child(ByVal a As Integer = 0)
'' Вызов конструктора базового
типа
Base(a * 3)
This.a = a
End Constructor
Sub Child.show()
'' Вызов метода базового типа show(), не
наш
Base.show()
'' Показать оба поля, базового
типа и наш
Print "child", Base.a, a
End Sub
Type GrandChild extends Child
As Integer a
Declare Constructor(ByVal As Integer = 0)
Declare Sub show()
End Type
Constructor GrandChild(ByVal a As Integer = 0)
'' Вызов конструктора базового
типа
Base(a * 2)
This.a = a
End Constructor
Sub GrandChild.show()
'' Вызов
метода базового типа show(), не наш
Base.show()
'' Показать три поля base.base типа, base типа и
наш
Print "grandchild", Base.Base.a, Base.a, a
End Sub
Dim As GrandChild x = GrandChild(3)
x.show()
Различия диалектов
- Методы поддерживаются только в диалекте -lang fb,
следовательно Base не имеет никакой функции в
других диалектах.
Отличия от QB
См. также