Для проекта, который я сейчас выполняю, я должен доставить специально отформатированные строки сторонней службе для обработки. И поэтому я наращивая строки так:Должны ли мы хранить строки формата в ресурсах?
string someString = string.Format("{0}{1}{2}: Some message. Some percentage: {3}%", token1, token2, token3, number);
Вместо того, жёстко строку, я думал о перемещении в ресурсах проекта:
string someString = string.Format(Properties.Resources.SomeString, token1, token2, token3, number);
Второй вариант, на мой взгляд , не такой читаемый, как первый, т.е. человек, читающий код, должен будет подтянуть строковые ресурсы, чтобы понять, как должен выглядеть конечный результат.
Как мне обойти это? Является ли строка жесткого кодирования необходимым злом в этом случае?
Вы должны также добавьте комментарии к файлу ресурсов, чтобы сказать, каковы параметры. Это очень полезно для локализаторов, если файл когда-либо переходит к переводу. –
@CodingMonkey: согласовано. Сделайте жизнь так же легко для инженеров локализации, как вы можете. Вы не хотите догадки о переводе. –
@MichaelPetrotta> Как бы вы стабилизировали код, чтобы эти строки {0} больше не нужны? Я лично думаю о том, чтобы не использовать 'string.Format', но использовать:' "begin {middle} end" .Replace ("{middle}", middle) '. Конечно, у этого подхода есть свои проблемы ... – Laoujin