Clarion Sharp Language Extension

Top  Previous  Next

The following topics in this section describes the Clarion# language extension and its syntax.

Clarion# is a superset of the Clarion Language, with the exception of those statements that involve DMA (direct memory access). In addition, statements in the Clarion language that support Win32 WINDOW structures are not applicable.

Many of the statements described in this document emulate the standard .NET conventions found on the Microsoft .NET developer’s web site, and parallel to a great extent their intended use.

This document focuses on the syntax unique to Clarion# statements.


Compiler Directives:

NAMESPACE (declare a scope)

USING (reference a namespace)


Simple Data Types:

BOOL (Boolean Value)

CHAR (Unicode Characters)

CLADECIMAL (.NET signed packed decimal)

CLALONG (four-byte signed integer)

CLASTRING (.NET fixed-length string)

CLAULONG (four-byte unsigned integer)


Complex Data Types:

ENUM (declare an enumeration)

STRUCT (compound data type)


Special Data Types:

Referencing Arrays


Variable and Entity Attributes:

INTERNAL (CLASS method assembly accessible)

PUBLIC (set variable public to all CLASS modules)



New, modified, and deprecated Expression Operators.

Object Comparison Operators

AS (Null casting)

IS (Check object type)

TRYAS (Exception Casting)

TYPEOF (Get System.Type object)


CLASS attributes

DELEGATE (function reference)

EVENT (CLASS Delegate Event)


NETCLASS (suppress generation of Clarion-specific CLASS code)

PARTIAL (defines a partial class)

PROPERTY (class specific private property)


CLASS Keyword

INLINE (embed source code in a CLASS)



Control Structures

FOREACH (arrayed looping construct)


Exception Handling

CATCH (trap exception)

FINALLY(exception handling clean up)

THROW (signal an exception)

TRY (arm exception handling)


Runtime Expression Evaluation

CHECKED (enable overflow checking)

UNCHECKED (suppress overflow checking)


Built-in Procedures

PARAMS (specify variable method parameters)

REF( parameter passed by reference)

SYNCLOCK (synchronize expression)


Clarion# Runtime Properties