public static bool FromObjToNumericType <N>(object fromObj, N defaultVal, Type xType, out object result)
        {
            var valueUpdated = true;

            result = defaultVal;

            if (xType == TypeClass.ByteClazz)
            {
                result = NumConvX.ObjectToByte(fromObj, NumConvX.ObjectToByte(defaultVal));
            }
            else if (xType == TypeClass.SByteClazz)
            {
                result = NumConvX.ObjectToSByte(fromObj, NumConvX.ObjectToSByte(defaultVal));
            }
            else if (xType == TypeClass.Int16Clazz)
            {
                result = NumConvX.ObjectToInt16(fromObj, NumConvX.ObjectToInt16(defaultVal));
            }
            else if (xType == TypeClass.UInt16Clazz)
            {
                result = NumConvX.ObjectToUInt16(fromObj, NumConvX.ObjectToUInt16(defaultVal));
            }
            else if (xType == TypeClass.Int32Clazz)
            {
                result = NumConvX.ObjectToInt32(fromObj, NumConvX.ObjectToInt32(defaultVal));
            }
            else if (xType == TypeClass.UInt32Clazz)
            {
                result = NumConvX.ObjectToUInt32(fromObj, NumConvX.ObjectToUInt32(defaultVal));
            }
            else if (xType == TypeClass.Int64Clazz)
            {
                result = NumConvX.ObjectToInt64(fromObj, NumConvX.ObjectToInt64(defaultVal));
            }
            else if (xType == TypeClass.UInt64Clazz)
            {
                result = NumConvX.ObjectToUInt64(fromObj, NumConvX.ObjectToUInt64(defaultVal));
            }
            else if (xType == TypeClass.FloatClazz)
            {
                result = NumConvX.ObjectToFloat(fromObj, NumConvX.ObjectToFloat(defaultVal));
            }
            else if (xType == TypeClass.DoubleClazz)
            {
                result = NumConvX.ObjectToDouble(fromObj, NumConvX.ObjectToDouble(defaultVal));
            }
            else if (xType == TypeClass.DecimalClazz)
            {
                result = NumConvX.ObjectToDecimal(fromObj, NumConvX.ObjectToDecimal(defaultVal));
            }
            else
            {
                valueUpdated = false;
            }

            return(valueUpdated);
        }
        private static bool FromObjToNullableNumericType(object fromObj, Type innerType, out object result)
        {
            var valueUpdated = true;

            result = null;

            if (innerType == TypeClass.ByteClazz)
            {
                result = NumConvX.ObjectToNullableByte(fromObj);
            }
            else if (innerType == TypeClass.SByteClazz)
            {
                result = NumConvX.ObjectToNullableSByte(fromObj);
            }
            else if (innerType == TypeClass.Int16Clazz)
            {
                result = NumConvX.ObjectToNullableInt16(fromObj);
            }
            else if (innerType == TypeClass.UInt16Clazz)
            {
                result = NumConvX.ObjectToNullableInt16(fromObj);
            }
            else if (innerType == TypeClass.Int32Clazz)
            {
                result = NumConvX.ObjectToNullableInt32(fromObj);
            }
            else if (innerType == TypeClass.UInt32Clazz)
            {
                result = NumConvX.ObjectToNullableUInt32(fromObj);
            }
            else if (innerType == TypeClass.Int64Clazz)
            {
                result = NumConvX.ObjectToNullableInt64(fromObj);
            }
            else if (innerType == TypeClass.UInt64Clazz)
            {
                result = NumConvX.ObjectToNullableUInt64(fromObj);
            }
            else if (innerType == TypeClass.FloatClazz)
            {
                result = NumConvX.ObjectToNullableFloat(fromObj);
            }
            else if (innerType == TypeClass.DoubleClazz)
            {
                result = NumConvX.ObjectToNullableDouble(fromObj);
            }
            else if (innerType == TypeClass.DecimalClazz)
            {
                result = NumConvX.ObjectToNullableDecimal(fromObj);
            }
            else
            {
                valueUpdated = false;
            }

            return(valueUpdated);
        }
        private static bool FromNullableNumericTypeToString(object numericVal, Type oType, CastingContext context, out object result)
        {
            var valueUpdated = true;

            result = null;

            if (oType == TypeClass.Int16NullableClazz)
            {
                result = StrConvX.Int16ToString(NumConvX.ObjectToNullableInt16(numericVal), context.NumericConvOptions, string.Empty);
            }
            else if (oType == TypeClass.UInt16NullableClazz)
            {
                result = StrConvX.UInt16ToString(NumConvX.ObjectToNullableUInt16(numericVal), context.NumericConvOptions, string.Empty);
            }
            else if (oType == TypeClass.Int32NullableClazz)
            {
                result = StrConvX.Int32ToString(NumConvX.ObjectToNullableInt32(numericVal), context.NumericConvOptions, string.Empty);
            }
            else if (oType == TypeClass.UInt32NullableClazz)
            {
                result = StrConvX.UInt32ToString(NumConvX.ObjectToNullableUInt32(numericVal), context.NumericConvOptions, string.Empty);
            }
            else if (oType == TypeClass.Int64NullableClazz)
            {
                result = StrConvX.Int64ToString(NumConvX.ObjectToNullableInt64(numericVal), context.NumericConvOptions, string.Empty);
            }
            else if (oType == TypeClass.UInt64NullableClazz)
            {
                result = StrConvX.UInt64ToString(NumConvX.ObjectToNullableUInt64(numericVal), context.NumericConvOptions, string.Empty);
            }
            else if (oType == TypeClass.FloatNullableClazz)
            {
                result = StrConvX.FloatToString(NumConvX.ObjectToNullableFloat(numericVal), context.Digits, context.NumericConvOptions);
            }
            else if (oType == TypeClass.DoubleNullableClazz)
            {
                result = StrConvX.DoubleToString(NumConvX.ObjectToNullableDouble(numericVal), context.Digits, context.NumericConvOptions);
            }
            else if (oType == TypeClass.DecimalNullableClazz)
            {
                result = StrConvX.DecimalToString(NumConvX.ObjectToNullableDecimal(numericVal), context.Digits, context.NumericConvOptions, string.Empty);
            }
            else
            {
                valueUpdated = false;
            }

            return(valueUpdated);
        }
        private static bool FromEnumToNumericType <N>(Type enumType, object enumVal, N defaultVal, Type xType, out object result)
        {
            var valueUpdated = true;

            result = defaultVal;

            if (xType == TypeClass.ByteClazz)
            {
                result = NumConvX.EnumToByte(enumType, enumVal, NumConvX.ObjectToByte(defaultVal));
            }
            else if (xType == TypeClass.SByteClazz)
            {
                result = NumConvX.EnumToSByte(enumType, enumVal, NumConvX.ObjectToSByte(defaultVal));
            }
            else if (xType == TypeClass.Int16Clazz)
            {
                result = NumConvX.EnumToInt16(enumType, enumVal, NumConvX.ObjectToInt16(defaultVal));
            }
            else if (xType == TypeClass.UInt16Clazz)
            {
                result = NumConvX.EnumToUInt16(enumType, enumVal, NumConvX.ObjectToUInt16(defaultVal));
            }
            else if (xType == TypeClass.Int32Clazz)
            {
                result = NumConvX.EnumToInt32(enumType, enumVal, NumConvX.ObjectToInt32(defaultVal));
            }
            else if (xType == TypeClass.UInt32Clazz)
            {
                result = NumConvX.EnumToUInt32(enumType, enumVal, NumConvX.ObjectToUInt32(defaultVal));
            }
            else if (xType == TypeClass.Int64Clazz)
            {
                result = NumConvX.EnumToInt64(enumType, enumVal, NumConvX.ObjectToInt64(defaultVal));
            }
            else if (xType == TypeClass.UInt32Clazz)
            {
                result = NumConvX.EnumToUInt64(enumType, enumVal, NumConvX.ObjectToUInt64(defaultVal));
            }
            else
            {
                valueUpdated = false;
            }

            return(valueUpdated);
        }
        private static bool FromEnumToNullableNumericType(Type enumType, object @enum, Type xType, out object result)
        {
            var valueUpdated = true;

            result = null;

            if (xType == TypeClass.ByteClazz)
            {
                result = NumConvX.EnumToNullableByte(enumType, @enum);
            }
            else if (xType == TypeClass.SByteClazz)
            {
                result = NumConvX.EnumToNullableSByte(enumType, @enum);
            }
            else if (xType == TypeClass.Int16Clazz)
            {
                result = NumConvX.EnumToNullableInt16(enumType, @enum);
            }
            else if (xType == TypeClass.UInt16Clazz)
            {
                result = NumConvX.EnumToNullableUInt16(enumType, @enum);
            }
            else if (xType == TypeClass.Int32Clazz)
            {
                result = NumConvX.EnumToNullableInt32(enumType, @enum);
            }
            else if (xType == TypeClass.UInt32Clazz)
            {
                result = NumConvX.EnumToNullableUInt32(enumType, @enum);
            }
            else if (xType == TypeClass.Int64Clazz)
            {
                result = NumConvX.EnumToNullableInt64(enumType, @enum);
            }
            else if (xType == TypeClass.UInt64Clazz)
            {
                result = NumConvX.EnumToNullableUInt64(enumType, @enum);
            }
            else
            {
                valueUpdated = false;
            }

            return(valueUpdated);
        }