有没有更好的方法将Object类型的变量转换为具有指定文化的字符串(与Thread的默认文化不同),而不是使用如下的丑陋方式:1)尝试将对象转换为所有支持ToString(CultureInfo)
重载的类型或2)临时设置线程的默认文化?
答案 0 :(得分:2)
您只需将其强制转换为IConvertible
界面:
object o = ...;
string s = ((IConvertible)o).ToString(cultureInfo);
答案 1 :(得分:1)
我认为最好的方法是使用Convert.ToString(obj,cultureInfo)。它使引擎盖下的所有铸件。
public static string ToString(Object value, IFormatProvider provider) {
IConvertible ic = value as IConvertible;
if (ic != null)
return ic.ToString(provider);
IFormattable formattable = value as IFormattable;
if (formattable != null)
return formattable.ToString(null, provider);
return value == null? String.Empty: value.ToString();
}
来源: https://referencesource.microsoft.com/#mscorlib/system/convert.cs,6a1a2c3ac58e60dd
答案 2 :(得分:0)
string.Format(culture, "{0}", obj);