Есть ли способ проверить строку формата во время компиляции?
Пример:
Console.WriteLine("{0} is a really {1} site", "stackoverflow.com", "cool");//this will run
//это даст исключение, поскольку предоставляется только один аргумент
Console.WriteLine("{0} is a really {1} site", "stackoverflow.com");
Exception:"Index (zero based) must be greater than or equal to zero and less than the size of the argument list."
и если строка формата находится не в правильном формате (т.е. отсутствует "}" после 1 здесь)
Console.WriteLine("{0} is a really {1 site", "stackoverflow.com","cool");
Exception: Input string was not in a correct format.
Нет, вы не можете добавить проверку времени компиляции. Это одна из строк нисходящих потоков и строк форматирования. Вы можете сделать несколько вещей, чтобы смягчить вашу проблему.
Нет, нет никакого способа сделать это. Тестирование модулей решает эту проблему.
Пока проверка на компиляцию не выполняется, ReSharper может предупредить вас в Visual Studio, когда количество аргументов неверно или формат строка находится в неправильном формате.