public static DataAggregate.DataTypeCode CommonNumericDenominator(DataAggregate.DataTypeCode x, DataAggregate.DataTypeCode y)
        {
            if (DataTypeUtility.IsNumeric(x) && DataTypeUtility.IsNumeric(y))
            {
                if (x == y)
                {
                    return(x);
                }
                if (DataTypeUtility.IsSigned(x) && DataTypeUtility.IsSigned(y))
                {
                    if (DataAggregate.DataTypeCode.Int64 != x && DataAggregate.DataTypeCode.Int64 != y)
                    {
                        return(DataAggregate.DataTypeCode.Int32);
                    }
                    return(DataAggregate.DataTypeCode.Int64);
                }
                if (DataTypeUtility.IsUnsigned(x) && DataTypeUtility.IsUnsigned(y))
                {
                    if (DataAggregate.DataTypeCode.UInt64 != x && DataAggregate.DataTypeCode.UInt64 != y)
                    {
                        return(DataAggregate.DataTypeCode.UInt32);
                    }
                    return(DataAggregate.DataTypeCode.UInt64);
                }
                if (DataTypeUtility.IsFloat(x) && DataTypeUtility.IsFloat(y))
                {
                    return(DataAggregate.DataTypeCode.Double);
                }
                if (DataTypeUtility.IsSigned(x) && DataTypeUtility.IsUnsigned(y))
                {
                    return(DataTypeUtility.CommonDataTypeSignedUnsigned(x, y));
                }
                if (DataTypeUtility.IsUnsigned(x) && DataTypeUtility.IsSigned(y))
                {
                    return(DataTypeUtility.CommonDataTypeSignedUnsigned(y, x));
                }
                if (DataTypeUtility.Is32BitOrLess(x) && DataTypeUtility.IsFloat(y))
                {
                    goto IL_00b6;
                }
                if (DataTypeUtility.Is32BitOrLess(y) && DataTypeUtility.IsFloat(x))
                {
                    goto IL_00b6;
                }
                if (DataTypeUtility.Is64BitOrLess(x) && DataAggregate.DataTypeCode.Decimal == y)
                {
                    goto IL_00d3;
                }
                if (DataTypeUtility.Is64BitOrLess(y) && DataAggregate.DataTypeCode.Decimal == x)
                {
                    goto IL_00d3;
                }
                return(DataAggregate.DataTypeCode.Null);
            }
            return(DataAggregate.DataTypeCode.Null);

IL_00b6:
            return(DataAggregate.DataTypeCode.Double);

IL_00d3:
            return(DataAggregate.DataTypeCode.Decimal);
        }