Revision [16183]

This is an old revision of KeyPgBase made by DkLwikki on 2012-05-23 18:20:08.

 

BASE (member access)


Provides explicit access to base type members in methods of a KeyPgType Type

Syntax:
base.member
base [ .base ... ] .member

Description:
Base provides a way to explicitly access members of a specific base type, in the context of methods of a user-defined type derived from another type using KeyPgExtends Extends. This is especially useful when local variables or members of a derived type override a base type's members if they are using the same identifiers. Base then allows unambiguous access to the base type. By using Base repeatedly, as in base.base.base.member, it is possible to access any desired base type, in case there are multiple levels of inheritance.

Examples:
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)
    '' Call base type's constructor
    Base(a * 3)
    This.a = a
End Constructor

Sub Child.show()
    '' Call base type's show() method, not ours
    Base.show()
   
    '' Show both a fields, the base type's and ours'
    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)
    '' Call base type's constructor
    Base(a * 2)
    This.a = a
End Constructor

Sub GrandChild.show()
    '' Call base type's show() method, not ours
    Base.show()
   
    '' Show both a fields, the base.base type's, the base type's and ours'
    Print "grandchild", Base.Base.a, Base.a, a
End Sub

Dim As GrandChild x = GrandChild(3)
x.show()

Dialect Differences:
Differences from QB:
See also:
Back to User Defined Types
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki



sf.net phatcode