# CMxReferenceArray Class

Namespace: `ArchestrA.Toolkit`

CMxReferenceArray is derived from CMxArray and provides support for Reference Array Attributes.

**Syntax**

```csharp
public class CMxReferenceArray : CMxArray<string>
```

## CMxReferenceArray Properties

### Value Property

Provides a property to get or set the value as a string array.

**Syntax**

```csharp
public string[] Value { get; set; }
```

**Returns**

string[ ]

### Property to Get and Set an Element using the [ ] Operator

Provides a property to get or set the string value of an element using [ ] operator.

**Syntax**

```csharp
public string this[short i] { get; set; }
```

**Returns**

string

## CMxReferenceArray Constructors

### CMxReferenceArray Constructor int

Provides a constructor to initialize the array to a default length.

**Syntax**

```csharp
public CMxReferenceArray(int length);
```

**Parameters**

**`length`**

[in] int value that holds the array length.

### CMxReferenceArray Constructor string[ ]

Provides a constructor to initialize the class with a string array default value.

**Syntax**

```csharp
public CMxReferenceArray (string[] value);
```

**Parameters**

**`value`**

[in] string[ ].

### CMxReferenceArray Constructor SupportWrapper, string

Provides a constructor to initialize the class for use in a primitive wrapper.

**Syntax**

```csharp
public CMxReferenceArray (SupportWrapper _wrapper, string _attributeRef);
```

**Parameters**

**`_wrapper`**

[in] SupportWrapper.

**`_attributeRef`**

[in] int value that holds the array length.

## CMxReferenceArray Method

### Set Method

Provides a method to set the value of the Attribute from a CMxReferenceArray.

**Syntax**

```csharp
public void Set(CMxReferenceArray newValue);
```

**Parameters**

**`newValue`**

[in] CMxReferenceArray instance value.

## CMxReferenceArray Operator Overloads

### CMxReferenceArray Operator Overload string[ ]

Provides an operator that converts from string array to CMxReferenceArray.

**Syntax**

```csharp
public static implicit operator CMxReferenceArray(string [] val);
```

**Parameters**

**`val`**

[in] string [ ].

**Returns**

CMxReferenceArray

### CMxValue Operator Overload

Provides an operator that converts from CMxReferenceArray to CMxValue.

**Syntax**

```csharp
public static implicit operator CMxValue(CMxReferenceArray val);
```

**Parameters**

**`val`**

[in] CMxReferenceArray instance value.

**Returns**

CMxValue

### String[ ] Operator Overload

Provides an operator that converts from CMxReferenceArray to string array.

**Syntax**

```csharp
public static implicit operator string [](CMxReferenceArray val);
```

**Parameters**

**`val`**

[in] CMxReferenceArray instance value.

**Returns**

string [ ]

### CMxReferenceArray Operator Overload CMxValue

Provides an operator that converts from CMxValue to CMxReferenceArray.

**Syntax**

```csharp
public static implicit operator CMxReferenceArray (CMxValue val);
```

**Parameters**

**`val`**

[in] CMxValue instance value.

**Returns**

CMxReferenceArray
