Подтвердить что ты не робот

Где вы должны хранить свои постоянные строки в .NET.

Где вы должны хранить ваши часто используемые строки для сообщений об ошибках, уведомлений и т.д.?

Я использовал, чтобы поместить его в этот глобальный класс с числом строк const, но я также видел некоторые, где он хранился в файлах ресурсов. Где лучше всего их разместить? Я использую .NET btw.

4b9b3361

Ответ 1

Resx удобен, если вы ожидаете необходимости их замены - например, интернационализация или индивидуальная настройка. Но перемещать их вручную между ними не очень сложно. Итак: возможно, это нужно изменить?

Я бы сказал: если вы держите их в коде, постарайтесь, чтобы константы были максимально плотно охвачены; если константа относится только к экземплярам User, например, поместите ее в User.

Аналогично, вещи, которые не будет изменяться, не должны загромождать resx; например, некоторая внутренняя хорошо известная строка, которая относится к значению значения в базе данных... вероятно, не относится к resx, даже если вы , используя resx.

Ответ 2

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

Я уверен, что есть другие преимущества/недостатки обоих, но тот, который сначала прыгает в мою голову.

Ответ 3

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

Если они являются частью ваших программных конструкций, таких как префиксы файлов, внутренние строки сообщений об ошибках и т.д., вы должны поместить их в отдельный файл кода.

Ответ 4

Все, что может быть локализовано, должно быть в файле ресурсов. Даже если вы на 100% уверены, что вам никогда не понадобится локализация, когда строки в файле ресурсов упрощают переход.

Таким образом, названия, имена, метки графического интерфейса пользователя, текст диалога, сообщения об ошибках и т.д. принадлежат классу resx. Сделайте это сейчас. Если/когда ваше приложение нуждается в локализации, будущие разработчики будут вам благодарны.

Теперь другие константы немного сложнее. Я не думаю, что существует жесткое правило, но обычно я пытаюсь определить "истинные" константы как константу с малым объемом по мере необходимости. По истинной константе я имею в виду все, что вряд ли когда-либо изменится в течение срока действия приложения. Я не люблю использовать файл ресурсов для нелокализованных строк, поскольку он имеет тенденцию разрушать инкапсуляцию. Например, требование имеет размер для функции PKDB2, должно определяться локально. Никто за пределами крипто объекта не должен знать, что это такое.

Вещи поднимают связанную тему. Все, что в настоящее время статично, но, скорее всего, изменится в будущем (даже в будущих версиях приложения), должно быть указано вместо него. Они могут быть загружены из resx, лично я этого не делаю. Effectivve С# охватывает это в элементе # 2.

Также многое зависит от того, что ваша компания/команда требует, чтобы я был в командах, где ничего не было в файле ресурсов, а также было в командах, где все (даже то, что я чувствовал, должно быть определено локально) хранилось в файле ресурсов.

Ответ 5

Смотрите этот пост, вы можете найти там полезные ответы, а также ценную дискуссию в комментариях.

Как правило, вы должны:

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