Standard Library

v0.1.0-beta.1

Object

The Object class is the semantic root of all OO-hierarchies in VSL. While internally nothing actually inherits object. What the Object class allows is for all objects to cast to it. What this means is that the Object class will store type metadata for whatever it is cast to. This means the Object class is slow but it also offers the opportunity for runtime reflection. Please reference the [Reflect] class for more information on that.

Beyond reflection, the Object class doesn't have many uses. Reflection is not considered good practice except for debugging and is very slow.

The Object class is internally implemented as a 'wrapper' with type metadata. The [Reflect] class is the only class assumed to have knowledge of the internal structure which is assumed to be not well-known as it may change from release to release.

In terms of this physical declaration, it does not refer to Object itself; this will be overriden by the internal object class but it specifies that the root class would be defined in this scope with this name.