| **Navigation:**  [[clarion.htm|Clarion.Net (Clarion#)]] > [[clarion net language reference.htm|Clarion# Language Extensions]] > Special Data Types >====== Reference to Arrays ====== | [[struct compound data type .htm|{{btn_prev_n.gif|Previous page}}]][[clarion net language reference.htm|{{btn_home_n.gif|Return to chapter overview}}]][[implicitly typed local variables.htm|{{btn_next_n.gif|Next page}}]] | | || {{newcnet.jpg|NewCNet.jpg}} References to arrays are new to Clarion .NET. Declaration of a variable of this type has the following syntax: | **label** | **<;**//base type//**>[, ',]** | **Example:** **ArrLg      LONG[]   !reference to LONG array with 1 dimension.** **ArrLg3     LONG[,,] !reference to LONG array with 3 dimensions.** The declaration below means " a reference to an array of references to a LONG with 1 dimension." **ArrRefLg &LONG[]** As you can see, unlike usual reference types, the "**&**" symbol isn't used in this declaration. {{notebox.jpg|NoteBox.jpg}} Clarion# now uses **zero based indexes for all arrays and collections**. But **FILEs and QUEUEs will still use 1-based indexes**. The rationale behind this change is that this makes it easier to work with the core Framework objects, 3rd-party .Net libraries, shared libraries you may write, as well as make it easier to translate code samples from C# or VB.