Why doesn't object have an overload that accepts IFormatProvider?

前端 未结 3 1200
情话喂你
情话喂你 2020-12-15 03:53

When converting for instance a decimal to a string, you use the CultureInfo.InvariantCulture and pass it as an IFormatProvider

3条回答
  •  借酒劲吻你
    2020-12-15 04:36

    Handy extension method of Peter's solution (modified to test also for IConvertible).

    public static string ToInvariantString(this object obj)
    {
        return obj is IConvertible ? ((IConvertible)obj).ToString(CultureInfo.InvariantCulture)
            : obj is IFormattable ? ((IFormattable)obj).ToString(null, CultureInfo.InvariantCulture)
            : obj.ToString();
    }
    

提交回复
热议问题