"Object" Standard Type

Object is the implied root class of the Elements class hierarchy, on all platforms and languages, and the direct or indirect ancestor of every other class (and, on .NET and Java, of all value types as well).

In C#, the object keyword can also be used to refer to this type.

Type Mapping

  • On .NET, Object maps to the System.Object FCL class.
  • On Cocoa, Object maps to the Foundation.NSObject class provided by SDKs.
  • On Java, Object maps to the java.lang.Object JDK class.
  • On Island, Object is implemented in Island RTL as RemObjects.Elements.System.Object.

The Swift Base Library also reverse-defines NSObject as alias to Object for all platforms to make it easier to share code with Apple's Swift, which does not define Object as a usable base class.

Per-Object-Model Objects on Island.

On Island, an Object type is declared for each Object Model (where applicable).

Short Long Real Type
IslandObject RemObjects.Elements.System.Island.Object RemObjects.Elements.System.Object
CocoaObject RemObjects.Elements.System.Cocoa.Object Foundation.NSObject
SwiftObject RemObjects.Elements.System.Swift.Object N/A
DelphiObject RemObjects.Elements.System.Delphi.Object Delphi.System.TObject

The short form "Object" (and in C# the object keyword) will always refer to the one matching the Default object model set for the project. This is achieved by the compiler putting the RemObjects.Elements.System.<DefaultObjectModel> namespace in scope.