Char.ToString(IFormatProvider)
От: _NN_ www.nemerleweb.com
Дата: 30.01.19 12:13
Оценка:
Есть такой метод: ссылка.

И вот его реализация:
https://referencesource.microsoft.com/#mscorlib/system/char.cs,150
      [Pure]
      public String ToString(IFormatProvider provider) {
          Contract.Ensures(Contract.Result<String>() != null);
          return Char.ToString(m_value);
      }


Получается, что аргумент полностью игнорируется.
Вопрос зачем нужен этот метод если толку от передачи IFormatProvider ноль ?
Я подозреваю, что это сделано для симметрии с остальными типами. Может кто знает ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: IConvertible.ToString(IFormatProvider)
От: Qbit86 Кипр
Дата: 30.01.19 12:25
Оценка: 4 (1) +1
Здравствуйте, _NN_, Вы писали:

_NN>Я подозреваю, что это сделано для симметрии с остальными типами. Может кто знает ?


Это часть реализации интерфейса IConvertible.
Использовать этот аргумент реализация интерфейса не обязана.
Глаза у меня добрые, но рубашка — смирительная!
Re: Char.ToString(IFormatProvider)
От: Egorio Россия  
Дата: 30.01.19 12:54
Оценка: :))
Здравствуйте, _NN_, Вы писали:

_NN>Есть такой метод: ссылка.


_NN>И вот его реализация:

_NN>https://referencesource.microsoft.com/#mscorlib/system/char.cs,150
_NN>
_NN>      [Pure]
_NN>      public String ToString(IFormatProvider provider) {
_NN>          Contract.Ensures(Contract.Result<String>() != null);
_NN>          return Char.ToString(m_value);
_NN>      }
_NN>


_NN>Получается, что аргумент полностью игнорируется.

_NN>Вопрос зачем нужен этот метод если толку от передачи IFormatProvider ноль ?
_NN>Я подозреваю, что это сделано для симметрии с остальными типами. Может кто знает ?


provider это формат получаемой строки
Например можно написать так:

DateTime d = new DateTime(1999, 1, 1);
Console.WriteLine(d.ToString()+" "+d.ToString("dd-MM-yyyy"));

1вар. в этом примере выведет дату в стандарт. варианте,
2вар. в формате 01-01-1999

Эта очень удобная фича например когда дату нужно вывести пользователю в его привычном формате.
Re: Char.ToString(IFormatProvider)
От: Sinatr Германия  
Дата: 30.01.19 13:18
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Вопрос зачем нужен этот метод если толку от передачи IFormatProvider ноль ?

_NN>Я подозреваю, что это сделано для симметрии с остальными типами.

RTFM:

Implements
ToString(IFormatProvider)


Как уже сказали, просто реализуется интерфейс.

А почему параметр не используется? Имея любой char можно легко превратить его в строку. Провайдер при этом значения не имеет.
---
ПроГLамеры объединяйтесь..
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.