("{0)") // ошибка: ) вместо }
("{0} {1}", var) // ошибка: всего один аргумент, вместо двух
Проверка строки формата во время компиляции
Например, чтобы обнаруживались такие ошибки:
Код:
Загуглил: check format string compile time
Смотрел всяко разно.
Топ 3 советов:
1. Вынести форматные строки в файл конфига.
Да, в ряде случаев это разумно. Но не всегда хотелось бы переусложнять простую программу работой с чтением строк из конфигов.
2. Использовать юнит-тесты.
Согласен, юнит-тесты - это хорошо, юнит-тесты - это сила. Но хотелось бы, чтобы за меня думал компьютер, он кремниевый - пусть работает.
3. Юзать ReSharper.
Вот это уже интересно. Но, во-первых, он платный, во-вторых, не встаёт на версии VS Express. А хочеццо халявы.
Кто работает с Решарпером, скажите: действительно ли он способен проверять корректность того, что мне нужно?
Есть ещё вариант сделать такую проверку на VBA, но готовых решений тоже не нашёл. Писать макрос самому - слишком плохо знаю визуал бейсик.
Может всё-таки есть способы сделать это как-то ещё?
Персональный вопрос: hardcase, а как с этим обстоит дело в Nemerle? Могут ли его чудесные макры взять на себя эту работу? И если да, то есть ли уже готовые?
Resharper способен
Насчёт Nemerle нашёл это: http://rsdn.ru/article/nemerle/NemerleStingFormating.xml#EPCAE. Возможно в нём такое.
Теперь бы для Шарпа что-нибудь найти.