Для этой конкретной необходимости у меня есть две строки const, содержащие параметры, например:
private const string myString = "The operation #{0} has been completed successfully in {1} seconds";
Этот тип константы, конечно, позже используется с String.Format () для генерации сообщений обратной связи.
Теперь я сталкиваюсь с конкретным случаем, когда у меня есть эти две константы. Мой пример не является реальным случаем для целей конфиденциальности, поэтому он не выглядит очень полезным или даже логичным, но я уверяю вас, что реальная вещь имеет смысл в контексте. Я просто не мог получить хорошую идею для поддельного дела с той же проблемой:
private const string shortFormat = "operation {0} out of {1}";
private const string longFormat = "During step one, an error was encountered on operation {0} out of {1}, and during step two, an error was encountered on operation {2} out of {3}";
Вы можете увидеть очевидную избыточность здесь. Одна из констант используется дважды внутри второй буквально для той же цели, только для большей картины.
Если бы он использовался только один раз, я мог бы использовать его снова так:
private const string shortFormat = "operation {0} out of {1}";
private const string longFormat = "During step one, an error was encountered on " + shortFormat + " so the process has not completed step two.";
Это выглядело бы намного лучше. Но я не знаю, как использовать его дважды, как в первом примере. Если я просто дважды вставлю shrotFormat, то дублирую параметры 0 и 1, поэтому строка во время выполнения будет выглядеть так:
"During step one, an error was encountered on operation {0} out of {1}, and during step two, an error was encountered on operation {0} out of {1}"
Который явно не будет работать с 4 различными параметрами в строке. Формат ()
Как я могу сделать так, чтобы это не повторялось, при этом все четыре номера параметров были разными и могли использоваться с 4 значениями?