Search Results for

    Show / Hide Table of Contents

    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.

    Implements
    IConvertible
    IComparable
    Inherited Members
    object.GetType()
    object.Equals(object, object)
    object.ReferenceEquals(object, object)
    Namespace: Reportman.Reporting
    Assembly: Reportman.Reporting.dll
    Syntax
    [JsonConverter(typeof(VariantJsonConverter))]
    [JsonConverter(typeof(VariantSystemTextJsonConverter))]
    public struct Variant : IConvertible, IComparable
    Remarks

    C# is a strongly typed language, this feature minimize runtime errors common when using implicit variable declaration (Visual Basic), or implicit type conversion (C or C++), however, at runtime, the requirements of an application can require the feature of operating with unknown/variable data types, usually this data comes from a database, and this data types can be unknown at compile time. Expression evaluation involving variable database fields is an example. Use only Variant type if your aplication requires this abstraction else it's better to use singular types.

    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
    Type Description
    DateTime

    AsDecimal

    Property to get the variant value as a decimal

    Declaration
    public decimal AsDecimal { get; }
    Property Value
    Type Description
    decimal

    AsDouble

    Property to get the variant value as a double

    Declaration
    public double AsDouble { get; }
    Property Value
    Type Description
    double

    AsInteger

    Property to get the variant value as an int

    Declaration
    public int AsInteger { get; }
    Property Value
    Type Description
    int

    AsLong

    Property to get the variant value as a long

    Declaration
    public long AsLong { get; }
    Property Value
    Type Description
    long

    AsString

    Property to get the variant value as a string

    Declaration
    public string AsString { get; }
    Property Value
    Type Description
    string

    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
    Type Description
    VariantType

    Returns the VariantType for the current value. VariantType

    Methods

    Abs()

    Returns the variant as a positive number, absolute value

    Declaration
    public Variant Abs()
    Returns
    Type Description
    Variant

    AsObject()

    Get the Variant as an object

    Declaration
    public object AsObject()
    Returns
    Type Description
    object
    Remarks

    For Null value the result is DBNull.Value. For binary data type, the result is a byte[] type

    AssignFromObject(object)

    Procedure to assign a Variant from any object type

    Declaration
    public void AssignFromObject(object obj)
    Parameters
    Type Name Description
    object obj
    Remarks

    If the object is a null reference, the result will be a Variant with type Null

    CompareTo(Variant)

    Compare to other Variant

    Declaration
    public int CompareTo(Variant obj)
    Parameters
    Type Name Description
    Variant obj
    Returns
    Type Description
    int

    CompareTo(object)

    Compare a Variant to an object

    Declaration
    public int CompareTo(object obj)
    Parameters
    Type Name Description
    object obj
    Returns
    Type Description
    int
    Remarks

    Returns 0 if both are equal, 1 if current instance is greater than object, else returns -1

    Equals(object)

    Compare a Variant with a object

    Declaration
    public override bool Equals(object obj)
    Parameters
    Type Name Description
    object obj
    Returns
    Type Description
    bool
    Overrides
    ValueType.Equals(object)

    GetDbType()

    Returns a DbType based on the Variant type

    Declaration
    public DbType GetDbType()
    Returns
    Type Description
    DbType

    GetHashCode()

    Necessary to override == operator

    Declaration
    public override int GetHashCode()
    Returns
    Type Description
    int
    Overrides
    ValueType.GetHashCode()

    GetStream()

    Gets the stream on a binary type Variant

    Declaration
    public MemoryStream GetStream()
    Returns
    Type Description
    MemoryStream

    GetTypeCode()

    Returns a TypeCode based on the Variant type

    Declaration
    public TypeCode GetTypeCode()
    Returns
    Type Description
    TypeCode

    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
    public bool IsBoolean()
    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
    public bool IsDateTime()
    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
    public bool IsInteger()
    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
    public bool IsNumber()
    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
    public bool IsString()
    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 Name Description
    MemoryStream memstream

    ToBoolean(IFormatProvider)

    Type transformation using a IFormatProvider

    Declaration
    public bool ToBoolean(IFormatProvider provid)
    Parameters
    Type Name Description
    IFormatProvider provid
    Returns
    Type Description
    bool

    ToByte(IFormatProvider)

    Type transformation using a IFormatProvider

    Declaration
    public byte ToByte(IFormatProvider provid)
    Parameters
    Type Name Description
    IFormatProvider provid
    Returns
    Type Description
    byte

    ToChar(IFormatProvider)

    Type transformation using a IFormatProvider

    Declaration
    public char ToChar(IFormatProvider provid)
    Parameters
    Type Name Description
    IFormatProvider provid
    Returns
    Type Description
    char

    ToDateTime(IFormatProvider)

    Type transformation using a IFormatProvider

    Declaration
    public DateTime ToDateTime(IFormatProvider provid)
    Parameters
    Type Name Description
    IFormatProvider provid
    Returns
    Type Description
    DateTime

    ToDecimal(IFormatProvider)

    Type transformation using a IFormatProvider

    Declaration
    public decimal ToDecimal(IFormatProvider provid)
    Parameters
    Type Name Description
    IFormatProvider provid
    Returns
    Type Description
    decimal

    ToDouble(IFormatProvider)

    Type transformation using a IFormatProvider

    Declaration
    public double ToDouble(IFormatProvider provid)
    Parameters
    Type Name Description
    IFormatProvider provid
    Returns
    Type Description
    double

    ToInt16(IFormatProvider)

    Type transformation using a IFormatProvider

    Declaration
    public short ToInt16(IFormatProvider provid)
    Parameters
    Type Name Description
    IFormatProvider provid
    Returns
    Type Description
    short

    ToInt32(IFormatProvider)

    Type transformation using a IFormatProvider

    Declaration
    public int ToInt32(IFormatProvider provid)
    Parameters
    Type Name Description
    IFormatProvider provid
    Returns
    Type Description
    int

    ToInt64(IFormatProvider)

    Type transformation using a IFormatProvider

    Declaration
    public long ToInt64(IFormatProvider provid)
    Parameters
    Type Name Description
    IFormatProvider provid
    Returns
    Type Description
    long

    ToSByte(IFormatProvider)

    Type transformation using a IFormatProvider

    Declaration
    public sbyte ToSByte(IFormatProvider provid)
    Parameters
    Type Name Description
    IFormatProvider provid
    Returns
    Type Description
    sbyte

    ToSingle(IFormatProvider)

    Type transformation using a IFormatProvider

    Declaration
    public float ToSingle(IFormatProvider provid)
    Parameters
    Type Name Description
    IFormatProvider provid
    Returns
    Type Description
    float

    ToString()

    Returns the value of a Variant as a string

    Declaration
    public override string ToString()
    Returns
    Type Description
    string
    Overrides
    ValueType.ToString()

    ToString(IFormatProvider)

    Type transformation using a IFormatProvider

    Declaration
    public string ToString(IFormatProvider provid)
    Parameters
    Type Name Description
    IFormatProvider provid
    Returns
    Type Description
    string

    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 Description
    string

    ToType(Type, IFormatProvider)

    Type transformation using a IFormatProvider

    Declaration
    public object ToType(Type conversionType, IFormatProvider provider)
    Parameters
    Type Name Description
    Type conversionType
    IFormatProvider provider
    Returns
    Type Description
    object

    ToUInt16(IFormatProvider)

    Type transformation using a IFormatProvider

    Declaration
    public ushort ToUInt16(IFormatProvider provid)
    Parameters
    Type Name Description
    IFormatProvider provid
    Returns
    Type Description
    ushort

    ToUInt32(IFormatProvider)

    Type transformation using a IFormatProvider

    Declaration
    public uint ToUInt32(IFormatProvider provid)
    Parameters
    Type Name Description
    IFormatProvider provid
    Returns
    Type Description
    uint

    ToUInt64(IFormatProvider)

    Type transformation using a IFormatProvider

    Declaration
    public ulong ToUInt64(IFormatProvider provid)
    Parameters
    Type Name Description
    IFormatProvider provid
    Returns
    Type Description
    ulong

    VariantFromObject(object)

    This function creates a Variant from a object

    Declaration
    public static Variant VariantFromObject(object obj)
    Parameters
    Type Name Description
    object obj
    Returns
    Type Description
    Variant

    Operators

    operator +(Variant, Variant)

    Binary add arithmetic operator

    Declaration
    public static Variant operator +(Variant avalue1, Variant avalue2)
    Parameters
    Type Name Description
    Variant avalue1
    Variant avalue2
    Returns
    Type Description
    Variant

    operator &(Variant, Variant)

    Binary and logic operator

    Declaration
    public static Variant operator &(Variant avalue1, Variant avalue2)
    Parameters
    Type Name Description
    Variant avalue1
    Variant avalue2
    Returns
    Type Description
    Variant

    operator |(Variant, Variant)

    Binary or logic operator

    Declaration
    public static bool operator |(Variant avalue1, Variant avalue2)
    Parameters
    Type Name Description
    Variant avalue1
    Variant avalue2
    Returns
    Type Description
    bool

    operator /(Variant, Variant)

    Binary division arithmetic operator

    Declaration
    public static Variant operator /(Variant avalue1, Variant avalue2)
    Parameters
    Type Name Description
    Variant avalue1
    Variant avalue2
    Returns
    Type Description
    Variant

    operator ==(Variant, Variant)

    Compare two variants

    Declaration
    public static bool operator ==(Variant avalue1, Variant avalue2)
    Parameters
    Type Name Description
    Variant avalue1
    Variant avalue2
    Returns
    Type Description
    bool
    Remarks

    Two Variants containing null value are not equal

    operator >(Variant, Variant)

    Compare two Variants

    Declaration
    public static bool operator >(Variant avalue1, Variant avalue2)
    Parameters
    Type Name Description
    Variant avalue1
    Variant avalue2
    Returns
    Type Description
    bool

    operator >=(Variant, Variant)

    Compare two Variants

    Declaration
    public static bool operator >=(Variant avalue1, Variant avalue2)
    Parameters
    Type Name Description
    Variant avalue1
    Variant avalue2
    Returns
    Type Description
    bool

    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
    Type Description
    bool

    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
    Type Description
    byte

    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
    Type Description
    char

    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
    Type Description
    DateTime

    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
    Type Description
    decimal

    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
    Type Description
    double

    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
    Type Description
    short

    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
    Type Description
    int

    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
    Type Description
    long

    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
    Type Description
    string

    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
    Type Description
    Variant

    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
    Type Description
    Variant

    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
    Type Description
    Variant

    implicit operator Variant(DateTime)

    Assigns a DateTime value to a Variant

    Declaration
    public static implicit operator Variant(DateTime avalue)
    Parameters
    Type Name Description
    DateTime avalue
    Returns
    Type Description
    Variant

    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
    Type Description
    Variant

    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
    Type Description
    Variant

    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
    Type Description
    Variant

    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
    Type Description
    Variant

    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
    Type Description
    Variant

    operator !=(Variant, Variant)

    Compare two Variants

    Declaration
    public static bool operator !=(Variant avalue1, Variant avalue2)
    Parameters
    Type Name Description
    Variant avalue1
    Variant avalue2
    Returns
    Type Description
    bool

    operator <(Variant, Variant)

    Compare two Variants

    Declaration
    public static bool operator <(Variant avalue1, Variant avalue2)
    Parameters
    Type Name Description
    Variant avalue1
    Variant avalue2
    Returns
    Type Description
    bool

    operator <=(Variant, Variant)

    Compare two Variants

    Declaration
    public static bool operator <=(Variant avalue1, Variant avalue2)
    Parameters
    Type Name Description
    Variant avalue1
    Variant avalue2
    Returns
    Type Description
    bool

    operator *(Variant, Variant)

    Binary multiplier arithmetic operator

    Declaration
    public static Variant operator *(Variant avalue1, Variant avalue2)
    Parameters
    Type Name Description
    Variant avalue1
    Variant avalue2
    Returns
    Type Description
    Variant

    operator -(Variant, Variant)

    Binary substraction arithmetic operator

    Declaration
    public static Variant operator -(Variant avalue1, Variant avalue2)
    Parameters
    Type Name Description
    Variant avalue1
    Variant avalue2
    Returns
    Type Description
    Variant

    operator -(Variant)

    Unary sign arithmetic operator

    Declaration
    public static Variant operator -(Variant avalue1)
    Parameters
    Type Name Description
    Variant avalue1
    Returns
    Type Description
    Variant

    Implements

    IConvertible
    IComparable
    In this article
    Back to top Generated by DocFX