У меня есть следующие две строки кода:
var BadResult = (100).ToString("B", new CustomFormatter ());
var GoodResult = String.Format("{0}", 100, new CustomFormatter ());
Принимая во внимание, что BadResult явно плох, а GoodResult хорош.Мой класс CustomFormatter объявлен так: (также с одной функцией, которую я считаю уместной):
public class CustomFormatter
: IFormatProvider, ICustomFormatter
{
public virtual Object GetFormat(Type formatType)
{
String formatTypeName = formatType.ToString();
formatTypeName = formatTypeName;
Object formatter = null;
if (formatType == typeof(ICustomFormatter))
formatter = this;
return formatter;
}
}
Сама проблема, когда я запускаю строку кода с «хорошим результатом», функция GetFormatэто запрос экземпляра CustomFormatter.
Всякий раз, когда он вызывается с помощью Float.Tostring (), он ожидает экземпляр NumberFormatInfo.
Сначала я переходил к «Мой CustomFormatter должен быть производным от NumberFormatInfo».К сожалению, класс запечатан.
Итак: Что мне нужно сделать, чтобы иметь возможность вызывать Float.ToString () с пользовательским форматером ?
Спасибо!