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
If true, the struct does not contain a primitive value (i.e. has type
Declaration
public 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.
Declaration
public 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.
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. |
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. |
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 |
FromBoolean(Boolean)
Declaration
public static PrimitiveValue FromBoolean(bool value)
Parameters
| Type | Name | Description |
|---|---|---|
| Boolean | value |
Returns
| Type | Description |
|---|---|
| PrimitiveValue |
FromByte(Byte)
Declaration
public static PrimitiveValue FromByte(byte value)
Parameters
| Type | Name | Description |
|---|---|---|
| Byte | value |
Returns
| Type | Description |
|---|---|
| PrimitiveValue |
FromChar(Char)
Declaration
public static PrimitiveValue FromChar(char value)
Parameters
| Type | Name | Description |
|---|---|---|
| Char | value |
Returns
| Type | Description |
|---|---|
| PrimitiveValue |
FromDouble(Double)
Declaration
public static PrimitiveValue FromDouble(double value)
Parameters
| Type | Name | Description |
|---|---|---|
| Double | value |
Returns
| Type | Description |
|---|---|
| PrimitiveValue |
FromInt16(Int16)
Declaration
public static PrimitiveValue FromInt16(short value)
Parameters
| Type | Name | Description |
|---|---|---|
| Int16 | value |
Returns
| Type | Description |
|---|---|
| PrimitiveValue |
FromInt32(Int32)
Declaration
public static PrimitiveValue FromInt32(int value)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | value |
Returns
| Type | Description |
|---|---|
| PrimitiveValue |
FromInt64(Int64)
Declaration
public static PrimitiveValue FromInt64(long value)
Parameters
| Type | Name | Description |
|---|---|---|
| Int64 | value |
Returns
| Type | Description |
|---|---|
| PrimitiveValue |
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 |
FromSByte(SByte)
Declaration
public static PrimitiveValue FromSByte(sbyte value)
Parameters
| Type | Name | Description |
|---|---|---|
| SByte | value |
Returns
| Type | Description |
|---|---|
| PrimitiveValue |
FromSingle(Single)
Declaration
public static PrimitiveValue FromSingle(float value)
Parameters
| Type | Name | Description |
|---|---|---|
| Single | value |
Returns
| Type | Description |
|---|---|
| PrimitiveValue |
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)
Declaration
public static PrimitiveValue FromUInt16(ushort value)
Parameters
| Type | Name | Description |
|---|---|---|
| UInt16 | value |
Returns
| Type | Description |
|---|---|
| PrimitiveValue |
FromUInt32(UInt32)
Declaration
public static PrimitiveValue FromUInt32(uint value)
Parameters
| Type | Name | Description |
|---|---|---|
| UInt32 | value |
Returns
| Type | Description |
|---|---|
| PrimitiveValue |
FromUInt64(UInt64)
Declaration
public static PrimitiveValue FromUInt64(ulong value)
Parameters
| Type | Name | Description |
|---|---|---|
| UInt64 | value |
Returns
| Type | Description |
|---|---|
| PrimitiveValue |
GetHashCode()
Compute a hash code for the value.
Declaration
public override int GetHashCode()
Returns
| Type | Description |
|---|---|
| Int32 | A hash code. |
GetTypeCode()
Equivalent to type.
Declaration
public TypeCode GetTypeCode()
Returns
| Type | Description |
|---|---|
| TypeCode | Type code for value stored in struct. |
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. |
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. |
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. |
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. |
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. |
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. |
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 |
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 |
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 |
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 |
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 |
ToString()
Return a string representation of the value.
Declaration
public override string ToString()
Returns
| Type | Description |
|---|---|
| String | A string representation of the value. |
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 |
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. |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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. |