Вызывает IConvertable.ToString
после проверки того, что типы IConvertable
.
case TypeCode.String:
return (object) convertible.ToString(provider);
Таким образом, в результате выполняется гораздо больше работы только для вызова ToString
с IFormatProvider
.Все будет зависеть от реализации типа, который реализует IConvertable
.
. provider
происходит от (IFormatProvider) Thread.CurrentThread.CurrentCulture
.
Это то, что int
делает.
public override string ToString()
{
return Number.FormatInt32(this, (string) null, NumberFormatInfo.CurrentInfo);
}
public string ToString(string format)
{
return Number.FormatInt32(this, format, NumberFormatInfo.CurrentInfo);
}
public string ToString(IFormatProvider provider)
{
return Number.FormatInt32(this, (string) null, NumberFormatInfo.GetInstance(provider));
}
public string ToString(string format, IFormatProvider provider)
{
return Number.FormatInt32(this, format, NumberFormatInfo.GetInstance(provider));
}