public virtual string Format(string format, object arg, IFormatProvider formatProvider)
{
if (format == null || !format.StartsWith("L", StringComparison.Ordinal))
{
return string.Format(CultureInfo.InvariantCulture, "{0}", arg);
}
string s;
var formattable = arg as IFormattable;
if (formattable != null)
{
s = formattable.ToString(format, formatProvider);
}
else if (arg != null)
{
s = arg.ToString();
}
else
{
return null;
}
// Uses the format string to
// form the output string.
int length = Convert.ToInt32(format.Substring(1), formatProvider);
if (s.Length > length)
{
s = s.Substring(0, length);
}
return s;
}
}