2010-11-28 3 views
1
string ToString(); 
string ToString(IFormatProvider provider); 
string ToString(string format, IFormatProvider provider); 
+0

Не могли бы вы объяснить свой вопрос немного дальше? – mike 2010-11-28 07:58:08

+0

сделать вопрос яснее Я думаю – user496949 2010-11-28 08:21:47

ответ

1

С редактированием:

public override string ToString() 

обеспечивает простейшее форматирование; он не позволяет спецификаторам формата, а культура неявна. Но удобно отображать основные элементы пользовательского интерфейса или во время отладки.

2 argument version позволяет указать формат и культуру, а интерфейс IFormattable обычно проверяется такими элементами, как string.Format и элементы управления пользовательским интерфейсом, которые позволяют разработчику указывать формат для использования (в частности, при связывании данных).

1-параметрическая версия не имеет особого значения; обратитесь к документации, но в примере, который вы приводите, похоже, просто разрешено указывать культуру. В большинстве случаев я бы на самом деле ожидать

public string ToString(string format) 

, более вероятно, используя текущую культуру по умолчанию (или оба должны быть предоставлены).

0

(примечание: вопрос изменился ...)

Вы может всегда переопределить ToString (если базовый класс пломбы его), так что вы можете сделать, как правило, что-то - но если вам нужна поддержка спецификатора формата (например, текстовый шаблон, такой как «###, 000»), IFormattable - это маршрут, но вам нужно обеспечить реализацию самостоятельно. Обратите внимание, что в некоторых случаях TypeConverter также может помочь.

Смежные вопросы