Table of Contents

Class VBType

Namespace
RDCore.SDK.Model.Types.Abstract
Assembly
RDCore.SDK.dll

A base abstract class representing any representable data type.

public abstract record VBType : IEquatable<VBType>
Inheritance
VBType
Implements
Derived
Inherited Members

Constructors

VBType(Type?, string, bool)

protected VBType(Type? managedType, string name, bool isHidden = false)

Parameters

managedType Type
name string
isHidden bool

Properties

DefaultValue

Gets the default value for this data type.

public abstract VBTypedValue DefaultValue { get; }

Property Value

VBTypedValue

Remarks

⚠️ Derived types must back the implementation of this property with a thread-safe private static readonly Lazy<T>. Failure to do so would lock up the static context initialization of the StaticSymbol symbols.

IsHidden

true for any implementation that has no specified semantics (internal types).

public bool IsHidden { get; init; }

Property Value

bool

Remarks

These types are semantically hidden from user code, but still discoverable in the program memory space if they're allocated.

ManagedType

The underlying managed (.net) type that represents this VB type, if any.

public Type? ManagedType { get; init; }

Property Value

Type

Name

The symbolic name of the type, as it is used in code.

public string Name { get; init; }

Property Value

string

Remarks

For module types, this value is determined by a VB_Name attribute.

Size

The size (in bytes) of a value of this type.

public abstract int Size { get; }

Property Value

int

Remarks

Determines the length of the allocated memory space for a value of this type.