Class VBLongLongType
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
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
ManagedMinValue
Gets the minimum representable managed (.net) value for this data type.
public override double ManagedMinValue { get; }
Property Value
MaxValue
Gets the maximum representable value for this data type.
public static VBLongLongValue MaxValue { get; }
Property Value
MinValue
Gets the minimum representable value for this data type.
public static VBLongLongValue MinValue { get; }
Property Value
TypeInfo
The LongLong data type.
public static VBLongLongType TypeInfo { get; }
Property Value
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
Methods
CreateValue(IBindingHandle)
Creates a value of this type bound to handle.
public override VBTypedValue CreateValue(IBindingHandle handle)
Parameters
handleIBindingHandle
Returns
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
valuedouble
Returns
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
valuedoubleThe value.
NaNis within no range.
Returns
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.