Table of Contents

Class VBLongLongType

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

A VBNumericType<T> representing the LongLong data type.

public sealed record VBLongLongType : VBNumericType<long>, IEquatable<VBType>, IEquatable<VBIntrinsicType>, IEquatable<VBNumericType>, IEquatable<VBNumericType<long>>, IIntegralNumericType, INumericType, IEquatable<VBLongLongType>
Inheritance
VBLongLongType
Implements
Inherited Members
Extension Methods

Remarks

The managed type of a value of this data type is long.
💥 Declarations of this data type are statically invalid in a 32-bit environment.
👉 Implements IIntegralNumericType.

Constructors

VBLongLongType()

A VBNumericType<T> representing the LongLong data type.

public VBLongLongType()

Remarks

The managed type of a value of this data type is long.
💥 Declarations of this data type are statically invalid in a 32-bit environment.
👉 Implements IIntegralNumericType.

Properties

DefaultValue

Gets the default value for this data type.

public override 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.

ManagedMaxValue

Gets the maximum representable managed (.net) value for this data type.

public override double ManagedMaxValue { get; }

Property Value

double

ManagedMinValue

Gets the minimum representable managed (.net) value for this data type.

public override double ManagedMinValue { get; }

Property Value

double

MaxValue

Gets the maximum representable value for this data type.

public static VBLongLongValue MaxValue { get; }

Property Value

VBLongLongValue

MinValue

Gets the minimum representable value for this data type.

public static VBLongLongValue MinValue { get; }

Property Value

VBLongLongValue

TypeInfo

The LongLong data type.

public static VBLongLongType TypeInfo { get; }

Property Value

VBLongLongType

Remarks

This type is statically invalid in a 32-bit environment.

Zero

Gets the value 0 (zero) representation of this data type.

public static VBLongLongValue Zero { get; }

Property Value

VBLongLongValue

Methods

CreateValue(IBindingHandle)

Creates a value of this type bound to handle.

public override VBTypedValue CreateValue(IBindingHandle handle)

Parameters

handle IBindingHandle

Returns

VBTypedValue

Remarks

The base implementation throws: only types that can hold a runtime value override this (matches the intent of the removed VBTypedValueFactory.CreateValue(VBType) switch, which returned null for the rest).

CreateValue(double)

Creates a value of this numeric type holding value, converted to this type's managed representation (banker's rounding for integral targets, as per Convert).

public override VBNumericTypedValue CreateValue(double value)

Parameters

value double

Returns

VBNumericTypedValue

Holds(double)

Whether a double is within the range of this type (MS-VBAL 5.5.1.2.1): one a value of this type can be made of (CreateValue(double)) without leaving the range.

public override bool Holds(double value)

Parameters

value double

The value. NaN is within no range.

Returns

bool

Remarks

👉 The base is within ManagedMinValue and ManagedMaxValue, both included, which is right for a type whose bounds are double values. A type whose bound is not one has, as its ManagedMaxValue or ManagedMinValue, the double nearest it, which can be past it: that type overrides this, and leaves out such a bound.