# CMxVariant Class

Namespace: `ArchestrA.Toolkit`

CMxVariant class is derived from CMxCommon and provides support for variant Attributes.

**Syntax**

```csharp
public class CMxVariant : CMxCommon
```

## CMxVariant Property

### Value Property

Provides a property to get and set the value as a string.

**Syntax**

```csharp
public CMxValue Value { get; set; }
```

**Returns**

CMxValue

## CMxVariant Constructors

### CMxVariant Constructor

Provides a default constructor.

**Syntax**

```csharp
public CMxVariant();
```

### CMxVariant Constructor CMxValue

Provides a constructor to initialize the object with a CMxValue.

**Syntax**

```csharp
public CMxVariant(CMxValue v);
```

**Parameters**

**`v`**

[in] CMxValue value.

### CMxVariant Constructor SupportWrapper, string

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

**Syntax**

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

**Parameters**

**`_wrapper`**

[in] SupportWrapper.

**`_attributeRef`**

[in] string value that holds the attribute reference.

## CMxVariant Methods

### Set Method

Provide a method to set the value of the Attribute from a CMxVariant

**Syntax**

```csharp
public void Set(CMxVariant val);
```

**Parameters**

**`val`**

[in] CMxVariant value to be set.

### SetDataType Method

Provides a method to set the MxDataType of the Attribute.

**Syntax**

```csharp
public void SetDataType(MxDataType dtype);
```

**Parameters**

**`dtype`**

[in] MxDataType value to be set.

## CMxVariant Operator Overloads

### CMxValue Operator Overload CMxVariant

Provides an operator that converts from CMxVariant to CMxValue.

**Syntax**

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

**Parameters**

**`val`**

[in] CMxVariant value to convert to CMxValue.

**Returns**

CMxValue

### CMxVariant Operator Overload CMxValue

Provides an operator that converts from CMxValue to CMxVariant.

**Syntax**

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

**Parameters**

**`val`**

[in] CMxValue value to convert to CMxVariant.

**Returns**

CMxVariant
