Struct Variant
Implementation of a Variant type with common arithmetic and
logic operations.
Variant is a container, not a class reference, that is when you assign
a variant to another variant, you are copying content, just like you
work with base types like int, char, string.
The Variant type is a useful feature to implement an expression
evaluator.
Assembly: Reportman.Reporting.dll
Syntax
[JsonConverter(typeof(VariantJsonConverter))]
[JsonConverter(typeof(VariantSystemTextJsonConverter))]
public struct Variant : IConvertible, IComparable
Examples
Variant a=12;
Variant b=13;
Variant c=a+b;
Variant d="The result is:";
d=d+c.ToString();
Properties
AsDateTime
Property to get the variant value as a Datetime
Declaration
public DateTime AsDateTime { get; }
Property Value
AsDecimal
Property to get the variant value as a decimal
Declaration
public decimal AsDecimal { get; }
Property Value
AsDouble
Property to get the variant value as a double
Declaration
public double AsDouble { get; }
Property Value
AsInteger
Property to get the variant value as an int
Declaration
public int AsInteger { get; }
Property Value
AsLong
Property to get the variant value as a long
Declaration
public long AsLong { get; }
Property Value
AsString
Property to get the variant value as a string
Declaration
public string AsString { get; }
Property Value
IsNull
Function to check if the current value is null.
Declaration
public bool IsNull { get; }
Property Value
| Type |
Description |
| bool |
Returns true if the value is null (VariantType.Null).
|
VarType
Function to check the variant type.
Declaration
public VariantType VarType { get; }
Property Value
Methods
Abs()
Returns the variant as a positive number, absolute value
Declaration
Returns
AsObject()
Get the Variant as an object
Declaration
Returns
AssignFromObject(object)
Procedure to assign a Variant from any object type
Declaration
public void AssignFromObject(object obj)
Parameters
| Type |
Name |
Description |
| object |
obj |
|
CompareTo(Variant)
Declaration
public int CompareTo(Variant obj)
Parameters
Returns
CompareTo(object)
Compare a Variant to an object
Declaration
public int CompareTo(object obj)
Parameters
| Type |
Name |
Description |
| object |
obj |
|
Returns
Equals(object)
Compare a Variant with a object
Declaration
public override bool Equals(object obj)
Parameters
| Type |
Name |
Description |
| object |
obj |
|
Returns
Overrides
GetDbType()
Returns a DbType based on the Variant type
Declaration
public DbType GetDbType()
Returns
GetHashCode()
Necessary to override == operator
Declaration
public override int GetHashCode()
Returns
Overrides
GetStream()
Gets the stream on a binary type Variant
Declaration
public MemoryStream GetStream()
Returns
GetTypeCode()
Returns a TypeCode based on the Variant type
Declaration
public TypeCode GetTypeCode()
Returns
GetTypeString()
Function to get the type of the value as a string.
Declaration
public string GetTypeString()
Returns
| Type |
Description |
| string |
Returns the string representation from the type of the value.
Possible values are:
- VariantType.Null
- VariantType.Boolean
- VariantType.Byte
- VariantType.Char
- VariantType.Integer
- VariantType.Long
- VariantType.Decimal
- VariantType.Double
- VariantType.DateTime
- VariantType.Binary
- VariantType.String
|
IsBoolean()
Function to check if the current value is a boolean value.
Declaration
Returns
| Type |
Description |
| bool |
Returns true if the current value is a boolean value.
|
IsDateTime()
Function to check if the current value is a Datetime value.
Declaration
Returns
| Type |
Description |
| bool |
Returns true if the current value is a Datetime value.
|
IsInteger()
Function to check if the current value is an integer value.
Declaration
Returns
| Type |
Description |
| bool |
Returns true if the current value is an ordinal, integer value.
That is currently a Byte, Integer or Long type values.
|
IsNumber()
Function to check if the current value is a number.
Declaration
Returns
| Type |
Description |
| bool |
Returns true if the current value is number.
That is any integer, Double or Decimal value.
|
IsString()
Function to check if the current value is a string value.
Declaration
Returns
| Type |
Description |
| bool |
Returns true if the current value is a string value.
|
SetStream(MemoryStream)
Assigns a memory stream to a Variant
Declaration
public void SetStream(MemoryStream memstream)
Parameters
Type transformation using a IFormatProvider
Declaration
public bool ToBoolean(IFormatProvider provid)
Parameters
Returns
Type transformation using a IFormatProvider
Declaration
public byte ToByte(IFormatProvider provid)
Parameters
Returns
Type transformation using a IFormatProvider
Declaration
public char ToChar(IFormatProvider provid)
Parameters
Returns
Type transformation using a IFormatProvider
Declaration
public DateTime ToDateTime(IFormatProvider provid)
Parameters
Returns
Type transformation using a IFormatProvider
Declaration
public decimal ToDecimal(IFormatProvider provid)
Parameters
Returns
Type transformation using a IFormatProvider
Declaration
public double ToDouble(IFormatProvider provid)
Parameters
Returns
Type transformation using a IFormatProvider
Declaration
public short ToInt16(IFormatProvider provid)
Parameters
Returns
Type transformation using a IFormatProvider
Declaration
public int ToInt32(IFormatProvider provid)
Parameters
Returns
Type transformation using a IFormatProvider
Declaration
public long ToInt64(IFormatProvider provid)
Parameters
Returns
Type transformation using a IFormatProvider
Declaration
public sbyte ToSByte(IFormatProvider provid)
Parameters
Returns
Type transformation using a IFormatProvider
Declaration
public float ToSingle(IFormatProvider provid)
Parameters
Returns
ToString()
Returns the value of a Variant as a string
Declaration
public override string ToString()
Returns
Overrides
Type transformation using a IFormatProvider
Declaration
public string ToString(IFormatProvider provid)
Parameters
Returns
ToString(string, ParamType, bool)
Formats a Variant, with a display format
Declaration
public string ToString(string displayformat, ParamType paramtype, bool printnulls)
Parameters
| Type |
Name |
Description |
| string |
displayformat |
The formatting string, depending on current value
|
| ParamType |
paramtype |
|
| bool |
printnulls |
|
Returns
Type transformation using a IFormatProvider
Declaration
public object ToType(Type conversionType, IFormatProvider provider)
Parameters
Returns
Type transformation using a IFormatProvider
Declaration
public ushort ToUInt16(IFormatProvider provid)
Parameters
Returns
Type transformation using a IFormatProvider
Declaration
public uint ToUInt32(IFormatProvider provid)
Parameters
Returns
Type transformation using a IFormatProvider
Declaration
public ulong ToUInt64(IFormatProvider provid)
Parameters
Returns
VariantFromObject(object)
This function creates a Variant from a object
Declaration
public static Variant VariantFromObject(object obj)
Parameters
| Type |
Name |
Description |
| object |
obj |
|
Returns
Operators
operator +(Variant, Variant)
Binary add arithmetic operator
Declaration
public static Variant operator +(Variant avalue1, Variant avalue2)
Parameters
Returns
operator &(Variant, Variant)
Binary and logic operator
Declaration
public static Variant operator &(Variant avalue1, Variant avalue2)
Parameters
Returns
operator |(Variant, Variant)
Declaration
public static bool operator |(Variant avalue1, Variant avalue2)
Parameters
Returns
operator /(Variant, Variant)
Binary division arithmetic operator
Declaration
public static Variant operator /(Variant avalue1, Variant avalue2)
Parameters
Returns
operator ==(Variant, Variant)
Declaration
public static bool operator ==(Variant avalue1, Variant avalue2)
Parameters
Returns
operator >(Variant, Variant)
Declaration
public static bool operator >(Variant avalue1, Variant avalue2)
Parameters
Returns
operator >=(Variant, Variant)
Declaration
public static bool operator >=(Variant avalue1, Variant avalue2)
Parameters
Returns
implicit operator bool(Variant)
Implicit conversion from Variant to bool
Declaration
public static implicit operator bool(Variant avalue)
Parameters
| Type |
Name |
Description |
| Variant |
avalue |
|
Returns
implicit operator byte(Variant)
Implicit conversion from Variant to byte
Declaration
public static implicit operator byte(Variant avalue)
Parameters
| Type |
Name |
Description |
| Variant |
avalue |
|
Returns
implicit operator char(Variant)
Implicit conversion from Variant to char
Declaration
public static implicit operator char(Variant avalue)
Parameters
| Type |
Name |
Description |
| Variant |
avalue |
|
Returns
implicit operator DateTime(Variant)
Implicit conversion from Variant to DateTime
Declaration
public static implicit operator DateTime(Variant avalue)
Parameters
| Type |
Name |
Description |
| Variant |
avalue |
|
Returns
implicit operator decimal(Variant)
Implicit conversion from Variant to decimal
Declaration
public static implicit operator decimal(Variant avalue)
Parameters
| Type |
Name |
Description |
| Variant |
avalue |
|
Returns
implicit operator double(Variant)
Implicit conversion from Variant to double
Declaration
public static implicit operator double(Variant avalue)
Parameters
| Type |
Name |
Description |
| Variant |
avalue |
|
Returns
implicit operator short(Variant)
Implicit conversion from Variant to short
Declaration
public static implicit operator short(Variant avalue)
Parameters
| Type |
Name |
Description |
| Variant |
avalue |
|
Returns
implicit operator int(Variant)
Implicit conversion from Variant to int
Declaration
public static implicit operator int(Variant avalue)
Parameters
| Type |
Name |
Description |
| Variant |
avalue |
|
Returns
implicit operator long(Variant)
Implicit conversion from Variant to long
Declaration
public static implicit operator long(Variant avalue)
Parameters
| Type |
Name |
Description |
| Variant |
avalue |
|
Returns
implicit operator string(Variant)
Implicit conversion from Variant to string
Declaration
public static implicit operator string(Variant avalue)
Parameters
| Type |
Name |
Description |
| Variant |
avalue |
|
Returns
implicit operator Variant(bool)
Assigns a bool value to a Variant
Declaration
public static implicit operator Variant(bool avalue)
Parameters
| Type |
Name |
Description |
| bool |
avalue |
|
Returns
implicit operator Variant(byte)
Assigns a byte value to a Variant
Declaration
public static implicit operator Variant(byte avalue)
Parameters
| Type |
Name |
Description |
| byte |
avalue |
|
Returns
implicit operator Variant(char)
Assigns a char value to a Variant
Declaration
public static implicit operator Variant(char avalue)
Parameters
| Type |
Name |
Description |
| char |
avalue |
|
Returns
implicit operator Variant(DateTime)
Assigns a DateTime value to a Variant
Declaration
public static implicit operator Variant(DateTime avalue)
Parameters
Returns
implicit operator Variant(decimal)
Assigns a decimal value to a Variant
Declaration
public static implicit operator Variant(decimal avalue)
Parameters
| Type |
Name |
Description |
| decimal |
avalue |
|
Returns
implicit operator Variant(double)
Assigns a double value to a Variant
Declaration
public static implicit operator Variant(double avalue)
Parameters
| Type |
Name |
Description |
| double |
avalue |
|
Returns
implicit operator Variant(int)
Assigns an int value to a Variant
Declaration
public static implicit operator Variant(int avalue)
Parameters
| Type |
Name |
Description |
| int |
avalue |
|
Returns
implicit operator Variant(long)
Assigns a long value to a Variant
Declaration
public static implicit operator Variant(long avalue)
Parameters
| Type |
Name |
Description |
| long |
avalue |
|
Returns
implicit operator Variant(string)
Assigns a string value to a Variant
Declaration
public static implicit operator Variant(string avalue)
Parameters
| Type |
Name |
Description |
| string |
avalue |
|
Returns
operator !=(Variant, Variant)
Declaration
public static bool operator !=(Variant avalue1, Variant avalue2)
Parameters
Returns
operator <(Variant, Variant)
Declaration
public static bool operator <(Variant avalue1, Variant avalue2)
Parameters
Returns
operator <=(Variant, Variant)
Declaration
public static bool operator <=(Variant avalue1, Variant avalue2)
Parameters
Returns
operator *(Variant, Variant)
Binary multiplier arithmetic operator
Declaration
public static Variant operator *(Variant avalue1, Variant avalue2)
Parameters
Returns
operator -(Variant, Variant)
Binary substraction arithmetic operator
Declaration
public static Variant operator -(Variant avalue1, Variant avalue2)
Parameters
Returns
operator -(Variant)
Unary sign arithmetic operator
Declaration
public static Variant operator -(Variant avalue1)
Parameters
| Type |
Name |
Description |
| Variant |
avalue1 |
|
Returns
Implements