# CMxCustomEnumArray Class

Namespace: `ArchestrA.Toolkit`

CMxCustomEnumArray is derived from CMxArray and provides support for Enum Array Attributes.

**Syntax**

```csharp
public class CMxCustomEnumArray : CMxArray<short>
```

## CMxCustomEnumArray Properties

### Text Property

Provides an EnumText to allow accessing elements as strings.

**Syntax**

```csharp
public EnumText Text;
```

**Returns**

EnumText

### Value Property

Provides a property to get and set the values of the ordinals as a short array.

**Syntax**

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

**Returns**

short[ ]

### Property to get and set the value of an ordinal

Provides a property to get and set the value of an ordinal element by short index.

**Syntax**

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

**Returns**

short

## CMxCustomEnumArray Constructors

### CMxCustomEnumArray Constructor (string, int, short[ ])

Provides a constructor to initialize the class with the name of an array, its depth relative to the owning object and an array of ordinals as short.

**Syntax**

```csharp
public CMxCustomEnumArray(string arrayAttribute, int depth, short[] value);
```

**Parameters**

**`arrayAttribute`**

[in] string value that holds the name of the string array attribute.

**`depth`**

[in] int value that holds the relative depth of the string array attribute primitive.

The depth assigned to the reference determines the location of the String Array reference (0 represents the local Primitive, -1 represents the Parent, -2 represents the Parents Parent and so on.)

**`value`**

[in] short[ ] value that holds the ordinal values.

### CMxCustomEnumArray Constructor (string, int, int)

Provides a constructor to initialize the class with the name of an array, its depth relative to the owning object and the default length.

**Syntax**

```csharp
public CMxCustomEnumArray(string arrayAttribute, int depth, int length);
```

**Parameters**

**`arrayAttribute`**

[in] string value that holds the name of the string array attribute.

**`depth`**

[in] int value that holds the relative depth of the string array attribute primitive.

The depth assigned to the reference determines the location of the String Array reference (0 represents the local Primitive, -1 represents the Parent, -2 represents the Parents Parent and so on.)

**`length`**

[in] int value that holds the array length.

### CMxCustomEnumArray Constructor (SupportWrapper, string)

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

**Syntax**

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

**Parameters**

**`_wrapper`**

[in] SupportWrapper.

**`_attributeRef`**

[in] string value that holds the attribute reference.

## CMxCustomEnumArray Methods

### GetString Method

Provides a method to get the value of an element from an ordinal as a short.

**Syntax**

```csharp
public string GetString(short i);
```

**Parameters**

**`i`**

[in] short value that holds the index.

**Returns**

string

### SetString Method

Provides a method to set the value of an element from a string.

**Syntax**

```csharp
public void SetString(short i, string value);
```

**Parameters**

**`i`**

[in] short value that holds the index.

**`value`**

[in] string value to be set.

### Set Method

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

**Syntax**

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

**Parameters**

**`newValue`**

[in] CMxCustomEnumArray value to be set.

## CMxCustomEnumArray Operator Overloads

### CMxCustomEnumArray Operator Overload (short[ ])

Provides an operator to convert a short array into a CMxCustomEnumArray.

**Syntax**

```csharp
public static implicit operator CMxCustomEnumArray(short[] val);
```

**Parameters**

**`val`**

[in] short[ ] value to convert to CMxCustomEnumArray.

**Returns**

CMxCustomEnumArray

### CMxValue Operator Overload

Provides an operator to convert a CMxCustomEnumArray into CMxValue.

**Syntax**

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

**Parameters**

**`val`**

[in] CMxCustomEnumArray value to convert to CMxValue.

**Returns**

CMxValue

### Short Operator Overload

Provide an operator to convert a CMxCustomEnumArray into a short array.

**Syntax**

```csharp
public static implicit operator short[](CMxCustomEnumArray val);
```

**Parameters**

**`val`**

[in] CMxCustomEnumArray value to convert to short[ ].

**Returns**

short[ ]

### CMxCustomEnumArray Operator Overload

Provides a operator to convert a CMxValue into a CMxCustomEnumArray.

**Syntax**

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

**Parameters**

**`val`**

[in] CMxValue value to convert to CMxCustomEnumArray.

**Returns**

CMxCustomEnumArray
