# OpcDataTypes Members

> Reference: Provides the identifiers of the data types of OPC UA and methods to map between .NET types, the members of OpcDataType and the identifiers of data types.

<dl class="api-definition">
<dt>Type</dt>
<dd><a href="./">OpcDataTypes</a></dd>
<dt>Namespace</dt>
<dd><a href="../namespaces/opc.uafx">Opc.UaFx</a></dd>
<dt>Assembly</dt>
<dd>Opc.UaFx.Advanced.dll</dd>
<dt>Package</dt>
<dd>Opc.UaFx.Advanced v2.59.0</dd>
<dt>Also in</dt>
<dd>Opc.UaFx.Client</dd>
</dl>

## Fields

### Boolean

<span class="api-meta">static</span>

Identifies the Boolean data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId Boolean
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly [Boolean] As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### Byte

<span class="api-meta">static</span>

Identifies the Byte data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId Byte
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly [Byte] As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### ByteString

<span class="api-meta">static</span>

Identifies the ByteString data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId ByteString
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly ByteString As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### DateTime

<span class="api-meta">static</span>

Identifies the DateTime data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId DateTime
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly DateTime As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### DiagnosticInfo

<span class="api-meta">static</span>

Identifies the DiagnosticInfo data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId DiagnosticInfo
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly DiagnosticInfo As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### Double

<span class="api-meta">static</span>

Identifies the Double data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId Double
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly [Double] As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### EngineeringUnitInfo

<span class="api-meta">static</span>

Identifies the EUInformation data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId EngineeringUnitInfo
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly EngineeringUnitInfo As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### Enumeration

<span class="api-meta">static</span>

Identifies the Enumeration data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId Enumeration
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly Enumeration As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### ExpandedNodeId

<span class="api-meta">static</span>

Identifies the ExpandedNodeId data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId ExpandedNodeId
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly ExpandedNodeId As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### Float

<span class="api-meta">static</span>

Identifies the Float data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId Float
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly Float As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### Guid

<span class="api-meta">static</span>

Identifies the Guid data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId Guid
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly Guid As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### Int16

<span class="api-meta">static</span>

Identifies the Int16 data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId Int16
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly Int16 As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### Int32

<span class="api-meta">static</span>

Identifies the Int32 data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId Int32
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly Int32 As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### Int64

<span class="api-meta">static</span>

Identifies the Int64 data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId Int64
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly Int64 As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### Integer

<span class="api-meta">static</span>

Identifies the Integer data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId Integer
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly [Integer] As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### LocalizedText

<span class="api-meta">static</span>

Identifies the LocalizedText data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId LocalizedText
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly LocalizedText As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### NodeId

<span class="api-meta">static</span>

Identifies the NodeId data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId NodeId
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly NodeId As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### Number

<span class="api-meta">static</span>

Identifies the Number data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId Number
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly Number As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### QualifiedName

<span class="api-meta">static</span>

Identifies the QualifiedName data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId QualifiedName
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly QualifiedName As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### SByte

<span class="api-meta">static</span>

Identifies the SByte data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId SByte
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly [SByte] As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### Status

<span class="api-meta">static</span>

Identifies the StatusCode data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId Status
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly Status As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### String

<span class="api-meta">static</span>

Identifies the String data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId String
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly [String] As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### UInt16

<span class="api-meta">static</span>

Identifies the UInt16 data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId UInt16
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly UInt16 As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### UInt32

<span class="api-meta">static</span>

Identifies the UInt32 data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId UInt32
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly UInt32 As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### UInt64

<span class="api-meta">static</span>

Identifies the UInt64 data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId UInt64
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly UInt64 As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### UInteger

<span class="api-meta">static</span>

Identifies the UInteger data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId UInteger
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly [UInteger] As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### Value

<span class="api-meta">static</span>

Identifies the DataValue data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId Value
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly Value As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### ValueRange

<span class="api-meta">static</span>

Identifies the Range data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId ValueRange
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly ValueRange As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

### XmlElement

<span class="api-meta">static</span>

Identifies the XmlElement data type.

<div class="api-signature" data-lang="csharp">

```csharp
public static readonly OpcNodeId XmlElement
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared ReadOnly XmlElement As OpcNodeId
```

</div>

**Field value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

## Methods

### GetArrayDimensions

<span class="api-meta">static · 4 overloads</span>

| Overload | Description |
|---|---|
| [GetArrayDimensions&lt;T&gt;()](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getarraydimensions-t1)<span class="api-meta">static · since v2.9</span> | Determines the array dimensions of the type specified by `T`. |
| [GetArrayDimensions&lt;T&gt;(T)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getarraydimensions-t1-t0)<span class="api-meta">static · since v2.9</span> | Determines the array dimensions of the `value` specified. |
| [GetArrayDimensions(Type)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getarraydimensions-system-type)<span class="api-meta">static · since v2.18</span> | Determines the array dimensions of the `type` specified. |
| [GetArrayDimensions(Type, object)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getarraydimensions-system-type-system-object)<span class="api-meta">static · since v2.18</span> | Determines the array dimensions of the `value` specified, or of the `type` specified if there is no value. |

#### GetArrayDimensions&lt;T&gt;()

<span class="api-meta">static · since v2.9</span>

Determines the array dimensions of the type specified by `T`.

<div class="api-signature" data-lang="csharp">

```csharp
public static OpcArrayDimensions GetArrayDimensions<T>()
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared Function GetArrayDimensions(Of T)() As OpcArrayDimensions
```

</div>

**Type parameters**

| Name | Description |
|---|---|
| `T` | The type whose array dimensions are to be determined. |

**Returns**

[OpcArrayDimensions](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcarraydimensions/)

The array dimensions with the length 0 for each dimension if `T` is an array type; otherwise a null reference (Nothing in Visual Basic).

#### GetArrayDimensions&lt;T&gt;(T)

<span class="api-meta">static · since v2.9</span>

Determines the array dimensions of the `value` specified.

<div class="api-signature" data-lang="csharp">

```csharp
public static OpcArrayDimensions GetArrayDimensions<T>(T value)
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared Function GetArrayDimensions(Of T)(
    value As T) As OpcArrayDimensions
```

</div>

**Type parameters**

| Name | Description |
|---|---|
| `T` | The type of the value. |

**Parameters**

| Name | Type | Description |
|---|---|---|
| `value` | T | The value whose array dimensions are to be determined. |

**Returns**

[OpcArrayDimensions](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcarraydimensions/)

The lengths of the dimensions if the `value` is an array; the length 0 for each dimension if the type of the `value`, or `T` for a null reference (Nothing in Visual Basic), is an array type; otherwise a null reference.

#### GetArrayDimensions(Type)

<span class="api-meta">static · since v2.18</span>

Determines the array dimensions of the `type` specified.

<div class="api-signature" data-lang="csharp">

```csharp
public static OpcArrayDimensions GetArrayDimensions(Type type)
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared Function GetArrayDimensions(type As Type) As OpcArrayDimensions
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `type` | [Type](https://learn.microsoft.com/dotnet/api/system.type) | The type whose array dimensions are to be determined. |

**Returns**

[OpcArrayDimensions](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcarraydimensions/)

The array dimensions with the length 0 for each dimension if the `type` is an array type; otherwise a null reference (Nothing in Visual Basic).

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `type` is a null reference (Nothing in Visual Basic). |

#### GetArrayDimensions(Type, object)

<span class="api-meta">static · since v2.18</span>

Determines the array dimensions of the `value` specified, or of the `type` specified if there is no value.

<div class="api-signature" data-lang="csharp">

```csharp
public static OpcArrayDimensions GetArrayDimensions(Type type, object value)
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared Function GetArrayDimensions(
    type As Type,
    value As Object) As OpcArrayDimensions
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `type` | [Type](https://learn.microsoft.com/dotnet/api/system.type) | The type whose array dimensions are used if the `value` is a null reference (Nothing in Visual Basic). |
| `value` | [Object](https://learn.microsoft.com/dotnet/api/system.object) | The value whose array dimensions are to be determined. |

**Returns**

[OpcArrayDimensions](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcarraydimensions/)

The array dimensions of the `value` (see [GetArrayDimensions](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getarraydimensions-t1-t0)), or of the `type` (see [GetArrayDimensions](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getarraydimensions-system-type)) if the `value` is a null reference.

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `type` is a null reference (Nothing in Visual Basic). |

### GetDataType

<span class="api-meta">static · 3 overloads</span>

| Overload | Description |
|---|---|
| [GetDataType&lt;T&gt;()](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getdatatype-t1)<span class="api-meta">static</span> | Determines the built-in data type of the type specified by `T`. |
| [GetDataType(Type)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getdatatype-system-type)<span class="api-meta">static</span> | Determines the built-in data type of the `type` specified. |
| [GetDataType(OpcNodeId)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getdatatype-opc-uafx-opcnodeid)<span class="api-meta">static</span> | Determines the data type represented by the identifier of a data type specified. |

#### GetDataType&lt;T&gt;()

<span class="api-meta">static</span>

Determines the built-in data type of the type specified by `T`.

<div class="api-signature" data-lang="csharp">

```csharp
public static OpcDataType GetDataType<T>()
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared Function GetDataType(Of T)() As OpcDataType
```

</div>

**Type parameters**

| Name | Description |
|---|---|
| `T` | The type whose built-in data type is to be determined. |

**Returns**

[OpcDataType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatype/)

The built-in data type (see [GetDataType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getdatatype-system-type)).

#### GetDataType(Type)

<span class="api-meta">static</span>

Determines the built-in data type of the `type` specified.

<div class="api-signature" data-lang="csharp">

```csharp
public static OpcDataType GetDataType(Type type)
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared Function GetDataType(type As Type) As OpcDataType
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `type` | [Type](https://learn.microsoft.com/dotnet/api/system.type) | The type whose built-in data type is to be determined. |

**Returns**

[OpcDataType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatype/)

The built-in data type of the data type of the `type` (see [GetNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getnodeid-system-type)), or [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatype/#null) if the `type` is a null reference (Nothing in Visual Basic) or its data type is not defined by OPC UA.

**Remarks**

For an array type the data type of its elements is determined. Unlike [GetDataType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getdatatype-opc-uafx-opcnodeid), the method results in the built-in type which encodes the data type, e.g. [ExtensionObject](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatype/#extensionobject) for a structure and [Variant](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatype/#variant) for [object](https://learn.microsoft.com/dotnet/api/system.object).

#### GetDataType(OpcNodeId)

<span class="api-meta">static</span>

Determines the data type represented by the identifier of a data type specified.

<div class="api-signature" data-lang="csharp">

```csharp
public static OpcDataType GetDataType(OpcNodeId nodeId)
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared Function GetDataType(nodeId As OpcNodeId) As OpcDataType
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `nodeId` | [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) | The identifier of the data type. |

**Returns**

[OpcDataType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatype/)

The member of [OpcDataType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatype/) whose identifier (see [GetNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getnodeid-opc-uafx-opcdatatype)) is the `nodeId`, [Object](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatype/#object) for any other data type, or [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatype/#null) if the `nodeId` is a null reference (Nothing in Visual Basic) or a null identifier.

### GetDefaultValue

<span class="api-meta">static · 2 overloads</span>

| Overload | Description |
|---|---|
| [GetDefaultValue&lt;T&gt;()](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getdefaultvalue-t1)<span class="api-meta">static</span> | Determines the default value OPC UA defines for the data type of the type specified by `T`. |
| [GetDefaultValue&lt;T&gt;(T)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getdefaultvalue-t1-t0)<span class="api-meta">static</span> | Determines the default value OPC UA defines for the data type of the type specified by `T` and the value rank of the `value` specified. |

#### GetDefaultValue&lt;T&gt;()

<span class="api-meta">static</span>

Determines the default value OPC UA defines for the data type of the type specified by `T`.

<div class="api-signature" data-lang="csharp">

```csharp
public static T GetDefaultValue<T>()
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared Function GetDefaultValue(Of T)() As T
```

</div>

**Type parameters**

| Name | Description |
|---|---|
| `T` | The type whose default value is to be determined. |

**Returns**

T

The default value of the data type (e.g. 0 for numbers) if it is a `T`; otherwise the default value of `T`.

#### GetDefaultValue&lt;T&gt;(T)

<span class="api-meta">static</span>

Determines the default value OPC UA defines for the data type of the type specified by `T` and the value rank of the `value` specified.

<div class="api-signature" data-lang="csharp">

```csharp
public static T GetDefaultValue<T>(T value)
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared Function GetDefaultValue(Of T)(value As T) As T
```

</div>

**Type parameters**

| Name | Description |
|---|---|
| `T` | The type whose default value is to be determined. |

**Parameters**

| Name | Type | Description |
|---|---|---|
| `value` | T | The value whose value rank is used (see [GetValueRank](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getvaluerank-t1-t0)). |

**Returns**

T

The default value of the data type (e.g. 0 for numbers) if it is a `T`; otherwise the default value of `T`.

### GetNodeId

<span class="api-meta">static · 4 overloads</span>

| Overload | Description |
|---|---|
| [GetNodeId&lt;T&gt;()](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getnodeid-t1)<span class="api-meta">static</span> | Determines the identifier of the data type of the type specified by `T`. |
| [GetNodeId(Type)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getnodeid-system-type)<span class="api-meta">static</span> | Determines the identifier of the data type of the `type` specified. |
| [GetNodeId(object)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getnodeid-system-object)<span class="api-meta">static</span> | Determines the identifier of the data type of the `value` specified. |
| [GetNodeId(OpcDataType)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getnodeid-opc-uafx-opcdatatype)<span class="api-meta">static</span> | Determines the identifier of the data type represented by the `type` specified. |

#### GetNodeId&lt;T&gt;()

<span class="api-meta">static</span>

Determines the identifier of the data type of the type specified by `T`.

<div class="api-signature" data-lang="csharp">

```csharp
public static OpcNodeId GetNodeId<T>()
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared Function GetNodeId(Of T)() As OpcNodeId
```

</div>

**Type parameters**

| Name | Description |
|---|---|
| `T` | The type whose data type is to be determined. |

**Returns**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

The identifier of the data type (see [GetNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getnodeid-system-type)).

#### GetNodeId(Type)

<span class="api-meta">static</span>

Determines the identifier of the data type of the `type` specified.

<div class="api-signature" data-lang="csharp">

```csharp
public static OpcNodeId GetNodeId(Type type)
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared Function GetNodeId(type As Type) As OpcNodeId
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `type` | [Type](https://learn.microsoft.com/dotnet/api/system.type) | The type whose data type is to be determined. |

**Returns**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

The identifier of the data type, or [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/members#null) if the `type` is a null reference (Nothing in Visual Basic).

**Remarks**

For an array type the data type of its elements is determined. The type [object](https://learn.microsoft.com/dotnet/api/system.object) results in the BaseDataType data type.

#### GetNodeId(object)

<span class="api-meta">static</span>

Determines the identifier of the data type of the `value` specified.

<div class="api-signature" data-lang="csharp">

```csharp
public static OpcNodeId GetNodeId(object value)
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared Function GetNodeId(value As Object) As OpcNodeId
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `value` | [Object](https://learn.microsoft.com/dotnet/api/system.object) | The value whose data type is to be determined. |

**Returns**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

The identifier of the data type of the type of the `value` (see [GetNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getnodeid-system-type)), or [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/members#null) if the `value` is a null reference (Nothing in Visual Basic).

#### GetNodeId(OpcDataType)

<span class="api-meta">static</span>

Determines the identifier of the data type represented by the `type` specified.

<div class="api-signature" data-lang="csharp">

```csharp
public static OpcNodeId GetNodeId(OpcDataType type)
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared Function GetNodeId(type As OpcDataType) As OpcNodeId
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `type` | [OpcDataType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatype/) | The data type whose identifier is to be determined. |

**Returns**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

The identifier of the data type, or [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/members#null) for [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatype/#null), [ExtensionObject](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatype/#extensionobject), [Variant](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatype/#variant) and [Object](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatype/#object).

### GetUnderlyingType

<span class="api-meta">static · 2 overloads · since v2.10</span>

| Overload | Description |
|---|---|
| [GetUnderlyingType(OpcDataType)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getunderlyingtype-opc-uafx-opcdatatype)<span class="api-meta">static · since v2.10</span> | Determines the .NET type used for values of the data type specified. |
| [GetUnderlyingType(OpcNodeId)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getunderlyingtype-opc-uafx-opcnodeid)<span class="api-meta">static · since v2.10</span> | Determines the .NET type used for values of the data type with the identifier specified. |

#### GetUnderlyingType(OpcDataType)

<span class="api-meta">static · since v2.10</span>

Determines the .NET type used for values of the data type specified.

<div class="api-signature" data-lang="csharp">

```csharp
public static Type GetUnderlyingType(OpcDataType type)
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared Function GetUnderlyingType(type As OpcDataType) As Type
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `type` | [OpcDataType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatype/) | The data type whose .NET type is to be determined. |

**Returns**

[Type](https://learn.microsoft.com/dotnet/api/system.type)

The .NET type (see [GetUnderlyingType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getunderlyingtype-opc-uafx-opcnodeid)), or a null reference (Nothing in Visual Basic) for a data type without identifier (see [GetNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getnodeid-opc-uafx-opcdatatype)).

#### GetUnderlyingType(OpcNodeId)

<span class="api-meta">static · since v2.10</span>

Determines the .NET type used for values of the data type with the identifier specified.

<div class="api-signature" data-lang="csharp">

```csharp
public static Type GetUnderlyingType(OpcNodeId nodeId)
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared Function GetUnderlyingType(nodeId As OpcNodeId) As Type
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `nodeId` | [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) | The identifier of the data type. |

**Returns**

[Type](https://learn.microsoft.com/dotnet/api/system.type)

The .NET type used for values of the data type (e.g. [OpcText](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opctext/) for LocalizedText), the .NET type of a data type defined by a .NET type, otherwise [object](https://learn.microsoft.com/dotnet/api/system.object); or a null reference (Nothing in Visual Basic) if the `nodeId` is a null reference or a null identifier.

### GetValueRank

<span class="api-meta">static · 4 overloads</span>

| Overload | Description |
|---|---|
| [GetValueRank&lt;T&gt;()](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getvaluerank-t1)<span class="api-meta">static</span> | Determines the value rank of the type specified by `T`. |
| [GetValueRank&lt;T&gt;(T)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getvaluerank-t1-t0)<span class="api-meta">static</span> | Determines the value rank of the `value` specified. |
| [GetValueRank(Type)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getvaluerank-system-type)<span class="api-meta">static</span> | Determines the value rank of the `type` specified. |
| [GetValueRank(Type, object)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getvaluerank-system-type-system-object)<span class="api-meta">static</span> | Determines the value rank of the `value` specified, or of the `type` specified if there is no value. |

#### GetValueRank&lt;T&gt;()

<span class="api-meta">static</span>

Determines the value rank of the type specified by `T`.

<div class="api-signature" data-lang="csharp">

```csharp
public static int GetValueRank<T>()
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared Function GetValueRank(Of T)() As Integer
```

</div>

**Type parameters**

| Name | Description |
|---|---|
| `T` | The type whose value rank is to be determined. |

**Returns**

[Int32](https://learn.microsoft.com/dotnet/api/system.int32)

The value rank (see [GetValueRank](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getvaluerank-system-type-system-object)).

#### GetValueRank&lt;T&gt;(T)

<span class="api-meta">static</span>

Determines the value rank of the `value` specified.

<div class="api-signature" data-lang="csharp">

```csharp
public static int GetValueRank<T>(T value)
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared Function GetValueRank(Of T)(value As T) As Integer
```

</div>

**Type parameters**

| Name | Description |
|---|---|
| `T` | The type of the value. |

**Parameters**

| Name | Type | Description |
|---|---|---|
| `value` | T | The value whose value rank is to be determined. |

**Returns**

[Int32](https://learn.microsoft.com/dotnet/api/system.int32)

The value rank (see [GetValueRank](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getvaluerank-system-type-system-object)).

#### GetValueRank(Type)

<span class="api-meta">static</span>

Determines the value rank of the `type` specified.

<div class="api-signature" data-lang="csharp">

```csharp
public static int GetValueRank(Type type)
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared Function GetValueRank(type As Type) As Integer
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `type` | [Type](https://learn.microsoft.com/dotnet/api/system.type) | The type whose value rank is to be determined. |

**Returns**

[Int32](https://learn.microsoft.com/dotnet/api/system.int32)

The value rank (see [GetValueRank](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#getvaluerank-system-type-system-object)).

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `type` is a null reference (Nothing in Visual Basic). |

#### GetValueRank(Type, object)

<span class="api-meta">static</span>

Determines the value rank of the `value` specified, or of the `type` specified if there is no value.

<div class="api-signature" data-lang="csharp">

```csharp
public static int GetValueRank(Type type, object value)
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Shared Function GetValueRank(type As Type, value As Object) As Integer
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `type` | [Type](https://learn.microsoft.com/dotnet/api/system.type) | The type whose value rank is used if the `value` is a null reference (Nothing in Visual Basic). |
| `value` | [Object](https://learn.microsoft.com/dotnet/api/system.object) | The value whose value rank is to be determined. |

**Returns**

[Int32](https://learn.microsoft.com/dotnet/api/system.int32)

The value rank as defined by OPC UA: -1 for a scalar, otherwise the number of dimensions of the array.

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `type` is a null reference (Nothing in Visual Basic). |

**Remarks**

A [byte](https://learn.microsoft.com/dotnet/api/system.byte) array is a one-dimensional array; a [ByteString](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypes/members#bytestring) is a scalar.
