private static void ConcatFormatValue <T>(this StringBuilder string_builder, T arg, uint padding, uint base_value, uint decimal_places) where T : IConvertible
        {
            TypeCode typeCode = arg.GetTypeCode();

            switch (typeCode)
            {
            case 9:
                string_builder.Concat(arg.ToInt32(NumberFormatInfo.get_CurrentInfo()), padding, '0', base_value);
                return;

            case 10:
                string_builder.Concat(arg.ToUInt32(NumberFormatInfo.get_CurrentInfo()), padding, '0', base_value);
                return;

            case 11:
            case 12:
IL_2B:
                if (typeCode != 18)
                {
                    return;
                }
                string_builder.Append(Convert.ToString(arg));
                return;

            case 13:
                string_builder.Concat(arg.ToSingle(NumberFormatInfo.get_CurrentInfo()), decimal_places, padding, '0');
                return;
            }
            goto IL_2B;
        }