Struct PrimitiveValue
A union holding a primitive value.
Namespace: UnityEngine.InputSystem.Utilities
Syntax
public struct PrimitiveValue : IEquatable<PrimitiveValue>, IConvertible
Remarks
This structure is used for storing things such as default states for controls (see defaultState). It can store one value of any primitive, non-reference C# type (bool, char, int, float, etc).
Constructors
PrimitiveValue(Boolean)
Create a PrimitiveValue holding a bool.
Declaration
public PrimitiveValue(bool value)
Parameters
| Type | Name | Description |
|---|---|---|
| Boolean | value | A boolean value. |
PrimitiveValue(Byte)
Create a PrimitiveValue holding a byte.
Declaration
public PrimitiveValue(byte value)
Parameters
| Type | Name | Description |
|---|---|---|
| Byte | value | A byte value. |
PrimitiveValue(Char)
Create a PrimitiveValue holding a character.
Declaration
public PrimitiveValue(char value)
Parameters
| Type | Name | Description |
|---|---|---|
| Char | value | A character. |
PrimitiveValue(Double)
Create a PrimitiveValue holding a double.
Declaration
public PrimitiveValue(double value)
Parameters
| Type | Name | Description |
|---|---|---|
| Double | value | A double value. |
PrimitiveValue(Int16)
Create a PrimitiveValue holding a short.
Declaration
public PrimitiveValue(short value)
Parameters
| Type | Name | Description |
|---|---|---|
| Int16 | value | A short value. |
PrimitiveValue(Int32)
Create a PrimitiveValue holding an int.
Declaration
public PrimitiveValue(int value)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | value | An int value. |
PrimitiveValue(Int64)
Create a PrimitiveValue holding a long.
Declaration
public PrimitiveValue(long value)
Parameters
| Type | Name | Description |
|---|---|---|
| Int64 | value | A long value. |
PrimitiveValue(SByte)
Create a PrimitiveValue holding a signed byte.
Declaration
public PrimitiveValue(sbyte value)
Parameters
| Type | Name | Description |
|---|---|---|
| SByte | value | A signed byte value. |
PrimitiveValue(Single)
Create a PrimitiveValue holding a float.
Declaration
public PrimitiveValue(float value)
Parameters
| Type | Name | Description |
|---|---|---|
| Single | value | A float value. |
PrimitiveValue(UInt16)
Create a PrimitiveValue holding an unsigned short.
Declaration
public PrimitiveValue(ushort value)
Parameters
| Type | Name | Description |
|---|---|---|
| UInt16 | value | An unsigned short value. |
PrimitiveValue(UInt32)
Create a PrimitiveValue holding an unsigned int.
Declaration
public PrimitiveValue(uint value)
Parameters
| Type | Name | Description |
|---|---|---|
| UInt32 | value | An unsigned int value. |
PrimitiveValue(UInt64)
Create a PrimitiveValue holding a ulong.
Declaration
public PrimitiveValue(ulong value)
Parameters
| Type | Name | Description |
|---|---|---|
| UInt64 | value | An unsigned long value. |
Properties
isEmpty
Declaration
public readonly bool isEmpty { get; }
Property Value
| Type | Description |
|---|---|
| Boolean | Whether the struct is holding a value or not. |
type
Type of value stored in the struct. Empty if the struct does not hold a value (i.e. has been default-initialized).
Declaration
public readonly TypeCode type { get; }
Property Value
| Type | Description |
|---|---|
| TypeCode | Type of value stored in the struct. |
Methods
ConvertTo(TypeCode)
Convert to another type of value.
Declaration
public PrimitiveValue ConvertTo(TypeCode type)
Parameters
| Type | Name | Description |
|---|---|---|
| TypeCode | type | Type of value to convert to. |
Returns
| Type | Description |
|---|---|
| PrimitiveValue | The converted value. |
Remarks
This method simply calls the other conversion methods (ToBoolean(IFormatProvider),
ToChar(IFormatProvider), etc) based on the current type of value. ArgumentException
is thrown if there is no conversion from the current to the requested type.
Every value can be converted to TypeCode.Empty.
Exceptions
| Type | Condition |
|---|---|
| ArgumentException | There is no conversion from the
PrimitiveValue's current type to
|
See Also
Equals(Object)
Compare this value to the value of obj.
Declaration
public override bool Equals(object obj)
Parameters
| Type | Name | Description |
|---|---|---|
| Object | obj | Either another PrimitiveValue or a boxed primitive value such as a byte, bool, etc. |
Returns
| Type | Description |
|---|---|
| Boolean | True if the two values are equal. |
Overrides
Remarks
If obj is a boxed primitive value, it is automatically
converted to a PrimitiveValue.
Equals(PrimitiveValue)
Compare this value to other.
Declaration
public bool Equals(PrimitiveValue other)
Parameters
| Type | Name | Description |
|---|---|---|
| PrimitiveValue | other | Another value. |
Returns
| Type | Description |
|---|---|
| Boolean | True if the two values are equal. |
Implements
Remarks
Equality is based on type and contents. The types of both values must be identical and the memory contents of each value must be bit-wise identical (i.e. things such as floating-point epsilons are not taken into account).
From<TValue>(TValue)
Create a PrimitiveValue from the given "blittable"/struct value.
Declaration
public static PrimitiveValue From<TValue>(TValue value)
where TValue : struct
Parameters
| Type | Name | Description |
|---|---|---|
| TValue | value | A value. |
Returns
| Type | Description |
|---|---|
| PrimitiveValue | The PrimitiveValue converted from |
Type Parameters
| Name | Description |
|---|---|
| TValue | Type of value to convert. Must be either an |
Exceptions
| Type | Condition |
|---|---|
| ArgumentException | No conversion exists from the given |
FromBoolean(Boolean)
Constructs a PrimitiveValue from value.
Declaration
public static PrimitiveValue FromBoolean(bool value)
Parameters
| Type | Name | Description |
|---|---|---|
| Boolean | value | The value to be stored in the returned |
Returns
| Type | Description |
|---|---|
| PrimitiveValue | A |
FromByte(Byte)
Constructs a PrimitiveValue from value.
Declaration
public static PrimitiveValue FromByte(byte value)
Parameters
| Type | Name | Description |
|---|---|---|
| Byte | value | The value to be stored in the returned |
Returns
| Type | Description |
|---|---|
| PrimitiveValue | A |
FromChar(Char)
Constructs a PrimitiveValue from value.
Declaration
public static PrimitiveValue FromChar(char value)
Parameters
| Type | Name | Description |
|---|---|---|
| Char | value | The value to be stored in the returned |
Returns
| Type | Description |
|---|---|
| PrimitiveValue | A |
FromDouble(Double)
Constructs a PrimitiveValue from value.
Declaration
public static PrimitiveValue FromDouble(double value)
Parameters
| Type | Name | Description |
|---|---|---|
| Double | value | The value to be stored in the returned |
Returns
| Type | Description |
|---|---|
| PrimitiveValue | A |
FromInt16(Int16)
Constructs a PrimitiveValue from value.
Declaration
public static PrimitiveValue FromInt16(short value)
Parameters
| Type | Name | Description |
|---|---|---|
| Int16 | value | The value to be stored in the returned |
Returns
| Type | Description |
|---|---|
| PrimitiveValue | A |
FromInt32(Int32)
Constructs a PrimitiveValue from value.
Declaration
public static PrimitiveValue FromInt32(int value)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | value | The value to be stored in the returned |
Returns
| Type | Description |
|---|---|
| PrimitiveValue | A |
FromInt64(Int64)
Constructs a PrimitiveValue from value.
Declaration
public static PrimitiveValue FromInt64(long value)
Parameters
| Type | Name | Description |
|---|---|---|
| Int64 | value | The value to be stored in the returned |
Returns
| Type | Description |
|---|---|
| PrimitiveValue | A |
FromObject(Object)
Create a PrimitiveValue from a boxed value.
Declaration
public static PrimitiveValue FromObject(object value)
Parameters
| Type | Name | Description |
|---|---|---|
| Object | value | A value. If |
Returns
| Type | Description |
|---|---|
| PrimitiveValue |
Exceptions
| Type | Condition |
|---|---|
| ArgumentException | No conversion exists from the type of |
FromSByte(SByte)
Constructs a PrimitiveValue from value.
Declaration
public static PrimitiveValue FromSByte(sbyte value)
Parameters
| Type | Name | Description |
|---|---|---|
| SByte | value | The value to be stored in the returned |
Returns
| Type | Description |
|---|---|
| PrimitiveValue | A |
FromSingle(Single)
Constructs a PrimitiveValue from value.
Declaration
public static PrimitiveValue FromSingle(float value)
Parameters
| Type | Name | Description |
|---|---|---|
| Single | value | The value to be stored in the returned |
Returns
| Type | Description |
|---|---|
| PrimitiveValue | A |
FromString(String)
Parse the given string into a PrimitiveValue.
Declaration
public static PrimitiveValue FromString(string value)
Parameters
| Type | Name | Description |
|---|---|---|
| String | value | A string containing a value. |
Returns
| Type | Description |
|---|---|
| PrimitiveValue | The PrimitiveValue parsed from the string. |
Remarks
Integers are parsed as longs. Floating-point numbers are parsed as doubles. Hexadecimal notation is supported for integers.
See Also
FromUInt16(UInt16)
Constructs a PrimitiveValue from value.
Declaration
public static PrimitiveValue FromUInt16(ushort value)
Parameters
| Type | Name | Description |
|---|---|---|
| UInt16 | value | The value to be stored in the returned |
Returns
| Type | Description |
|---|---|
| PrimitiveValue | A |
FromUInt32(UInt32)
Constructs a PrimitiveValue from value.
Declaration
public static PrimitiveValue FromUInt32(uint value)
Parameters
| Type | Name | Description |
|---|---|---|
| UInt32 | value | The value to be stored in the returned |
Returns
| Type | Description |
|---|---|
| PrimitiveValue | A |
FromUInt64(UInt64)
Constructs a PrimitiveValue from value.
Declaration
public static PrimitiveValue FromUInt64(ulong value)
Parameters
| Type | Name | Description |
|---|---|---|
| UInt64 | value | The value to be stored in the returned |
Returns
| Type | Description |
|---|---|
| PrimitiveValue | A |
GetHashCode()
Compute a hash code for the value.
Declaration
public override int GetHashCode()
Returns
| Type | Description |
|---|---|
| Int32 | A hash code. |
Overrides
GetTypeCode()
Equivalent to type.
Declaration
public TypeCode GetTypeCode()
Returns
| Type | Description |
|---|---|
| TypeCode | Type code for value stored in struct. |
Implements
ToBoolean(IFormatProvider)
Convert the value to a boolean.
Declaration
public bool ToBoolean(IFormatProvider provider = null)
Parameters
| Type | Name | Description |
|---|---|---|
| IFormatProvider | provider | Ignored. |
Returns
| Type | Description |
|---|---|
| Boolean | Converted boolean value. |
Implements
ToByte(IFormatProvider)
Convert the value to a byte.
Declaration
public byte ToByte(IFormatProvider provider = null)
Parameters
| Type | Name | Description |
|---|---|---|
| IFormatProvider | provider | Ignored. |
Returns
| Type | Description |
|---|---|
| Byte | Converted byte value. |
Implements
ToChar(IFormatProvider)
Convert the value to a char.
Declaration
public char ToChar(IFormatProvider provider = null)
Parameters
| Type | Name | Description |
|---|---|---|
| IFormatProvider | provider | Ignored. |
Returns
| Type | Description |
|---|---|
| Char | Converted char value. |
Implements
ToDateTime(IFormatProvider)
Not supported. Throws NotSupportedException.
Declaration
public DateTime ToDateTime(IFormatProvider provider = null)
Parameters
| Type | Name | Description |
|---|---|---|
| IFormatProvider | provider | Ignored. |
Returns
| Type | Description |
|---|---|
| DateTime | Does not return. |
Implements
Exceptions
| Type | Condition |
|---|---|
| NotSupportedException | Always thrown. |
ToDecimal(IFormatProvider)
Convert the value to a decimal.
Declaration
public decimal ToDecimal(IFormatProvider provider = null)
Parameters
| Type | Name | Description |
|---|---|---|
| IFormatProvider | provider | Ignored. |
Returns
| Type | Description |
|---|---|
| Decimal | Value converted to decimal format. |
Implements
ToDouble(IFormatProvider)
Convert the value to a double.
Declaration
public double ToDouble(IFormatProvider provider = null)
Parameters
| Type | Name | Description |
|---|---|---|
| IFormatProvider | provider | Ignored. |
Returns
| Type | Description |
|---|---|
| Double | Converted double value. |
Implements
ToInt16(IFormatProvider)
Convert the value to a short.
Declaration
public short ToInt16(IFormatProvider provider = null)
Parameters
| Type | Name | Description |
|---|---|---|
| IFormatProvider | provider | Ignored. |
Returns
| Type | Description |
|---|---|
| Int16 | Converted |
Implements
ToInt32(IFormatProvider)
Convert the value to an int
Declaration
public int ToInt32(IFormatProvider provider = null)
Parameters
| Type | Name | Description |
|---|---|---|
| IFormatProvider | provider | Ignored. |
Returns
| Type | Description |
|---|---|
| Int32 | Converted |
Implements
ToInt64(IFormatProvider)
Convert the value to a long
Declaration
public long ToInt64(IFormatProvider provider = null)
Parameters
| Type | Name | Description |
|---|---|---|
| IFormatProvider | provider | Ignored. |
Returns
| Type | Description |
|---|---|
| Int64 | Converted |
Implements
ToObject()
Return a boxed version of the value.
Declaration
public object ToObject()
Returns
| Type | Description |
|---|---|
| Object | A boxed GC heap object. |
Remarks
This method always allocates GC heap memory.
ToSByte(IFormatProvider)
Convert the value to a sbyte.
Declaration
public sbyte ToSByte(IFormatProvider provider = null)
Parameters
| Type | Name | Description |
|---|---|---|
| IFormatProvider | provider | Ignored. |
Returns
| Type | Description |
|---|---|
| SByte | Converted |
Implements
ToSingle(IFormatProvider)
Convert the value to a float.
Declaration
public float ToSingle(IFormatProvider provider = null)
Parameters
| Type | Name | Description |
|---|---|---|
| IFormatProvider | provider | Ignored. |
Returns
| Type | Description |
|---|---|
| Single | Converted |
Implements
ToString()
Return a string representation of the value.
Declaration
public override string ToString()
Returns
| Type | Description |
|---|---|
| String | A string representation of the value. |
Overrides
Remarks
String versions of PrimitiveValues are always culture invariant. This means that floating-point values, for example, will not the decimal separator of the current culture.
See Also
ToString(IFormatProvider)
Convert the value to a string.
Declaration
public string ToString(IFormatProvider provider)
Parameters
| Type | Name | Description |
|---|---|---|
| IFormatProvider | provider | Ignored. |
Returns
| Type | Description |
|---|---|
| String | Converted |
Implements
Remarks
Same as calling ToString().
ToType(Type, IFormatProvider)
Not supported.
Declaration
public object ToType(Type conversionType, IFormatProvider provider)
Parameters
| Type | Name | Description |
|---|---|---|
| Type | conversionType | Ignored. |
| IFormatProvider | provider | Ignored. |
Returns
| Type | Description |
|---|---|
| Object | Does not return. |
Implements
Exceptions
| Type | Condition |
|---|---|
| NotSupportedException | Always thrown. |
ToUInt16(IFormatProvider)
Convert the value to a ushort.
Declaration
public ushort ToUInt16(IFormatProvider provider = null)
Parameters
| Type | Name | Description |
|---|---|---|
| IFormatProvider | provider | Ignored. |
Returns
| Type | Description |
|---|---|
| UInt16 | Converted |
Implements
ToUInt32(IFormatProvider)
Convert the value to a uint.
Declaration
public uint ToUInt32(IFormatProvider provider = null)
Parameters
| Type | Name | Description |
|---|---|---|
| IFormatProvider | provider | Ignored. |
Returns
| Type | Description |
|---|---|
| UInt32 | Converted |
Implements
ToUInt64(IFormatProvider)
Convert the value to a ulong.
Declaration
public ulong ToUInt64(IFormatProvider provider = null)
Parameters
| Type | Name | Description |
|---|---|---|
| IFormatProvider | provider | Ignored. |
Returns
| Type | Description |
|---|---|
| UInt64 | Converted |
Implements
Operators
Equality(PrimitiveValue, PrimitiveValue)
Compare two PrimitiveValues for equality.
Declaration
public static bool operator ==(PrimitiveValue left, PrimitiveValue right)
Parameters
| Type | Name | Description |
|---|---|---|
| PrimitiveValue | left | First value. |
| PrimitiveValue | right | Second value. |
Returns
| Type | Description |
|---|---|
| Boolean | True if the two values are equal. |
See Also
Implicit(Boolean to PrimitiveValue)
Create a PrimitiveValue holding a bool.
Declaration
public static implicit operator PrimitiveValue(bool value)
Parameters
| Type | Name | Description |
|---|---|---|
| Boolean | value | A boolean value. |
Returns
| Type | Description |
|---|---|
| PrimitiveValue | A |
Implicit(Byte to PrimitiveValue)
Create a PrimitiveValue holding a byte.
Declaration
public static implicit operator PrimitiveValue(byte value)
Parameters
| Type | Name | Description |
|---|---|---|
| Byte | value | A byte value. |
Returns
| Type | Description |
|---|---|
| PrimitiveValue | A |
Implicit(Char to PrimitiveValue)
Create a PrimitiveValue holding a character.
Declaration
public static implicit operator PrimitiveValue(char value)
Parameters
| Type | Name | Description |
|---|---|---|
| Char | value | A character. |
Returns
| Type | Description |
|---|---|
| PrimitiveValue | A |
Implicit(Double to PrimitiveValue)
Create a PrimitiveValue holding a double.
Declaration
public static implicit operator PrimitiveValue(double value)
Parameters
| Type | Name | Description |
|---|---|---|
| Double | value | A double value. |
Returns
| Type | Description |
|---|---|
| PrimitiveValue | A |
Implicit(Int16 to PrimitiveValue)
Create a PrimitiveValue holding a short.
Declaration
public static implicit operator PrimitiveValue(short value)
Parameters
| Type | Name | Description |
|---|---|---|
| Int16 | value | A short value. |
Returns
| Type | Description |
|---|---|
| PrimitiveValue | A |
Implicit(Int32 to PrimitiveValue)
Create a PrimitiveValue holding an int.
Declaration
public static implicit operator PrimitiveValue(int value)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | value | An int value. |
Returns
| Type | Description |
|---|---|
| PrimitiveValue | A |
Implicit(Int64 to PrimitiveValue)
Create a PrimitiveValue holding a long.
Declaration
public static implicit operator PrimitiveValue(long value)
Parameters
| Type | Name | Description |
|---|---|---|
| Int64 | value | A long value. |
Returns
| Type | Description |
|---|---|
| PrimitiveValue | A |
Implicit(SByte to PrimitiveValue)
Create a PrimitiveValue holding a signed byte.
Declaration
public static implicit operator PrimitiveValue(sbyte value)
Parameters
| Type | Name | Description |
|---|---|---|
| SByte | value | A signed byte value. |
Returns
| Type | Description |
|---|---|
| PrimitiveValue | A |
Implicit(Single to PrimitiveValue)
Create a PrimitiveValue holding a float.
Declaration
public static implicit operator PrimitiveValue(float value)
Parameters
| Type | Name | Description |
|---|---|---|
| Single | value | A float value. |
Returns
| Type | Description |
|---|---|
| PrimitiveValue | A |
Implicit(UInt16 to PrimitiveValue)
Create a PrimitiveValue holding an unsigned short.
Declaration
public static implicit operator PrimitiveValue(ushort value)
Parameters
| Type | Name | Description |
|---|---|---|
| UInt16 | value | An unsigned short value. |
Returns
| Type | Description |
|---|---|
| PrimitiveValue | A |
Implicit(UInt32 to PrimitiveValue)
Create a PrimitiveValue holding an unsigned int.
Declaration
public static implicit operator PrimitiveValue(uint value)
Parameters
| Type | Name | Description |
|---|---|---|
| UInt32 | value | An unsigned int value. |
Returns
| Type | Description |
|---|---|
| PrimitiveValue | A |
Implicit(UInt64 to PrimitiveValue)
Create a PrimitiveValue holding a ulong.
Declaration
public static implicit operator PrimitiveValue(ulong value)
Parameters
| Type | Name | Description |
|---|---|---|
| UInt64 | value | An unsigned long value. |
Returns
| Type | Description |
|---|---|
| PrimitiveValue | A |
Inequality(PrimitiveValue, PrimitiveValue)
Compare two PrimitiveValues for inequality.
Declaration
public static bool operator !=(PrimitiveValue left, PrimitiveValue right)
Parameters
| Type | Name | Description |
|---|---|---|
| PrimitiveValue | left | First value. |
| PrimitiveValue | right | Second value. |
Returns
| Type | Description |
|---|---|
| Boolean | True if the two values are not equal. |