Represents a value in a dataframe cell.
Depending on the underlying type, can be coerced to:
- (s)byte(?)
- (u)short(?)
- (u)int(?)
- (u)long(?)
- float(?)
- double(?)
- bool(?)
- string
- DateTime(?)
- DateTimeOffset(?)
- TimeSpan(?)
Conversions can be performed with casts (which throw if the conversion is invalid) or the TryConvert methods which return false if the conversion is invalid.
Conversions are done lazily. Values just represent offsets into a dataframe.
Enumerations are a special case. If the underyling type is a category, enums can be used if:
- the names of each enum field match a category name
- the valyues of each enum field match a category index
However, no cast operators can be provided for enumerations. Conversion must go through either an (int) cast or a TryConvert call.