Class VBType
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
Properties
DefaultValue
Gets the default value for this data type.
public abstract VBTypedValue DefaultValue { get; }
Property Value
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
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
Name
The symbolic name of the type, as it is used in code.
public string Name { get; init; }
Property Value
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
Remarks
Determines the length of the allocated memory space for a value of this type.