Try OpenEdge Now
skip to main content
GUI for .NET Programming
Using .NET data types in ABL : Overview of .NET data types in ABL : Value types in ABL

Value types in ABL

These are all the types that derive from the .NET System.ValueType class. They include a specific set of classes—all structures and enumerations. Value types differ from all other .NET object types in that they are passed to or returned from .NET by value. This has implications for managing value type objects in ABL. For more information, see Support for .NET object types.
.NET actually implements most primitive data types of .NET languages as their interchangeable subset of value types in the CLR—for example, System.Boolean, which implements the C# bool, and System.Double, which implements the C# double. An ABL application, then, accesses these .NET mapped data types through public .NET method parameters, properties, or data members using corresponding built-in ABL primitive types. For example, ABL maps its LOGICAL to System.Boolean and maps its DECIMAL to System.Double. However, unlike CLS-compliant languages whose primitive types mostly map one-to-one with their interchangeable object-type equivalents, ABL has fewer corresponding primitive types and supports its own mappings by doing appropriate compile-time and run-time type compatibility checking.
Note: The Microsoft .NET Framework documentation specifies object-type equivalents when describing data items in a language-independent manner. Where this same documentation shows language-dependent code and signatures (declarations) for .NET methods, properties, and data members, it specifies the primitive data types using the syntax of each language in order to describe the same data items.