Здравствуйте, VladD2, Вы писали:
VD>Хочу добавить поддержку форматирования в $-строках и (главное) в StrinTemplate. Встал вопрос как это оформить синтаксически.
VD>Преложения принимаются и рассматириваются в течении пары дней.
Форматирования чего? Чисел? Или всего подряд?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Re: Разыскивается синтаксис для формата строк в $-строке
Здравствуйте, VladD2, Вы писали:
VD>Хочу добавить поддержку форматирования в $-строках и (главное) в StrinTemplate. Встал вопрос как это оформить синтаксически.
VD>Фрмат будет задаваться как-то так: VD>
VD>$" x=$(x; описание формата);"
VD>
VD>Но как его описывать конерктно?
Старый добрый формат printf?
А собственно что форматировать и кто это форматирует?
Re: Разыскивается синтаксис для формата строк в $-строке
Здравствуйте, VladD2, Вы писали:
VD>Преложения принимаются и рассматириваются в течении пары дней.
Предложение 1: тупо содрать форматирование с C# — string.Format("{0:format}", x)
Re[2]: Разыскивается синтаксис для формата строк в $-строке
Здравствуйте, IO, Вы писали:
VD>>Преложения принимаются и рассматириваются в течении пары дней. IO>Предложение 1: тупо содрать форматирование с C# — string.Format("{0:format}", x)
А есть где-нить полное и понятное описание этого дела?
И там еще IFormat или что-то вроде того ведь задействуется. Надо бы это дело тогда тоже поддерживать.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Разыскивается синтаксис для формата строк в $-строке
Здравствуйте, VladD2, Вы писали:
VD>Фрмат будет задаваться как-то так: VD>
VD>$" x=$(x; описание формата);"
VD>
VD>Но как его описывать конерктно?
Можно тупой вопрос: а в чём проблема?
Грубо говоря, строка $" x=$(x; описание формата);" должна разворачиваться в "x = " + x.ToString(описание формата);
Или я чего-то не понимаю как всегда?
Re[3]: Разыскивается синтаксис для формата строк в $-строке
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, IO, Вы писали:
VD>>>Преложения принимаются и рассматириваются в течении пары дней. IO>>Предложение 1: тупо содрать форматирование с C# — string.Format("{0:format}", x)
VD>А есть где-нить полное и понятное описание этого дела?
MSDN -> .NET Framework Developer's Guide -> Composite Formatting -> Format Item Syntax
VD>И там еще IFormat или что-то вроде того ведь задействуется. Надо бы это дело тогда тоже поддерживать.
Мы говорим о поддержке String.Format (String, Object[]). Можно прямо в эту функцию развернуть (как было сказано).
Поддерживать ли String.Format (IFormatProvider, String, Object[]) и остальные даже не знаю... таким макаром получится просто враппер над форматированием C#. Правда подсахареный.
Re[3]: Разыскивается синтаксис для формата строк в $-строке
Здравствуйте, VladD2, Вы писали:
VD>А есть где-нить полное и понятное описание этого дела? VD>И там еще IFormat или что-то вроде того ведь задействуется. Надо бы это дело тогда тоже поддерживать.
Можно глянуть реализацию string.Format.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: Разыскивается синтаксис для формата строк в $-строке
Здравствуйте, IO, Вы писали:
VD>>А есть где-нить полное и понятное описание этого дела? IO>MSDN -> .NET Framework Developer's Guide -> Composite Formatting -> Format Item Syntax
Проще было ссылку дать. И боюсь, что там не полное описание. Все что я видел в МСДН было каким-то запутанным. По нему пользоваться то было сложно, а уж писать...
VD>>И там еще IFormat или что-то вроде того ведь задействуется. Надо бы это дело тогда тоже поддерживать. IO>Мы говорим о поддержке String.Format (String, Object[]). Можно прямо в эту функцию развернуть (как было сказано).
Не. Так точно не стоит. Это резко замедлит скорость. У нас пока что $-строки прямо в конкатинацию строк разворачиваются (что является самым быстрым вариантом), а StringTemplate в конкатинацию на StringBuilder-е.
IO>Поддерживать ли String.Format (IFormatProvider, String, Object[]) и остальные даже не знаю... таким макаром получится просто враппер над форматированием C#. Правда подсахареный.
Точно поддерживает. МС скорее пожертвует скоростью нежели универсальностью.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Разыскивается синтаксис для формата строк в $-строке
Здравствуйте, VladD2, Вы писали:
VD>Проще было ссылку дать. И боюсь, что там не полное описание. Все что я видел в МСДН было каким-то запутанным. По нему пользоваться то было сложно, а уж писать...
А тебе и не надо писать. Просто используй ToString(format).
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, VladD2, Вы писали:
VD>У меня нет Ротора под ругой, а декомпиляция может что-то похерить. Если у кого есть, пошлите мне файл с реализацией string.Format на мыло.
Здравствуйте, IT, Вы писали:
VD>>Проще было ссылку дать. И боюсь, что там не полное описание. Все что я видел в МСДН было каким-то запутанным. По нему пользоваться то было сложно, а уж писать...
IT>А тебе и не надо писать. Просто используй ToString(format).
Идея мне нравится. Но где берут этот "ToString"? И как он ведет себя для разных типов?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
IT>>Большинство типов поддерживают интерфейс IFormattable. VD>Вот это большинство согалсно Рефлетктору:
Большинство простых типов. Как раз то, что нужно. Вообще, это стандартный способ применить формат в фреймворке. Тот же метод string.Format вызывает StringBuilder.ApplayFormat, который в свою очередь выпарсивает форматы из строки формата и если, объект реализует IFormattable, то вызывает IFormattable.ToString. Думаю, тебе можно незатейливо содрать эту реализацию.
VD>
VD>string ToString(string format, IFormatProvider formatProvider);
VD>
VD>где брать реализацию этого IFormatProvider-а?
Туда можно передавать null. string.Format так и делает.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[10]: Разыскивается синтаксис для формата строк в $-строке
Здравствуйте, IT, Вы писали:
IT>Большинство простых типов. Как раз то, что нужно. Вообще, это стандартный способ применить формат в фреймворке. Тот же метод string.Format вызывает StringBuilder.ApplayFormat, который в свою очередь выпарсивает форматы из строки формата и если, объект реализует IFormattable, то вызывает IFormattable.ToString. Думаю, тебе можно незатейливо содрать эту реализацию.
VD>>
VD>>string ToString(string format, IFormatProvider formatProvider);
VD>>
VD>>где брать реализацию этого IFormatProvider-а?
IT>Туда можно передавать null. string.Format так и делает.
Попробуем.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.