Насколько важно использование строковых ресурсов? Когда целесообразно / нецелесообразно использовать / не использовать их? - PullRequest
2 голосов
/ 15 июня 2009

В моей работе есть политика (в другом отделе), которая выглядит примерно так:

Если применимо, хранить строки в строковых ресурсах. Если нужны динамические строки, используйте индексированные заполнители. Не делай этого:

string myString = String.Format("Name = {0}, hours = {1:hh}", myName, DateTime.Now);

Но сделайте это:

string myString = String.Format(Resource1.NameFormatString, myName, DateTime.Now);

Каков опыт SO-сообщества со строковыми ресурсами? Когда вы считаете целесообразным использовать их? Это хорошая политика по вашему мнению? Это добавляет к удобочитаемости? практичность? Стоит ли инкапсуляция?

Ответы [ 4 ]

9 голосов
/ 15 июня 2009

Это критическое требование при работе с интернационализацией (i18n); ресурсы должны быть локализованы на локальные языки, что невозможно сделать, если они являются строковыми литералами в коде.

Хорошая идея - кодировать вещи такого типа для любого производственного кода, так как возвращение назад и преобразование кода для использования ресурсов может оказаться довольно обременительным, если позже потребуется i18n.

2 голосов
/ 15 июня 2009

Помимо значительного упрощения локализации, перемещение строк в файл ресурсов означает, что вы можете исправить опечатки без повторного развертывания всего приложения .NET.

2 голосов
/ 15 июня 2009

Определение хорошей / плохой политики полностью зависит от того, соответствует ли она ее целям. В приведенном примере использование строки ресурса фактически делает сам код менее читабельным - без поиска строки вы не будете знать, какие там заполнители или в каком порядке они появляются. НО может быть несколько деловых причин, почему это стоит немного дополнительных усилий. Я не уверен, что аргументы вашей организации могут быть, но вот пара из головы в голову.

  • локализация, вы можете поменять файлы ресурсов и переформатировать ваши даты, цифры и т. Д., Не касаясь кода

  • повторное использование строки - если одна и та же строка появляется в нескольких разных местах, вы можете определить ее один раз ... любые изменения будут распространяться на все случаи ее использования

  • перевод - значительно упрощает перевод приложения на другие языки.

Большинство политик вводятся в действие по хорошо установленной причине, поэтому лучше всего поспрашивать. Это действительно может дать вам некоторое представление о бизнесе департамента.

0 голосов
/ 11 сентября 2009

Любая видимая человеком строка (через пользовательский интерфейс) в локализованном приложении должна быть локализована. Единственный случай, когда этого не делать, это строки, не зависящие от языка, такие как простые числа или математические формулы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...