Как использовать функцию "Переместить на ресурс" в Resharper

У меня есть MessageBox в C# примерно так:

MessageBox.Show("Message Here", "Title Here", MessageBoxButtons.OK, MessageBoxIcon.Error);

Под моим сообщением и названием у меня есть возможность в ReSharper Move to Resource и он хочет переместить эти значения в файл Resources.resx, а затем просто сослаться на них в моем MessageBox.

Это излишество, а не то, для чего эта функция на самом деле или хорошая идея?

Спасибо

3 ответа

Решение

Я бы сказал, что это не перебор. Даже если вы на 100% уверены (можете ли вы быть на самом деле?), Что вам никогда не нужно предоставлять свое приложение на другом языке, это делает код намного более читабельным, если он не "завален" строками / сообщениями.

Лично я узнал, что я начал писать намного лучше (сообщения об ошибках), как только я переместил их все на ресурсы. До этого я слишком старался, чтобы они "хорошо выглядели" в коде, а не представлял действительно значимое сообщение.

Конечно, есть и недостатки. Хотя навигация обычно не страдает ("Перейти к определению" ReSharper одинаково хорошо работает со строковыми ресурсами), вы не получаете проверку string.Format параметры. Опять же, для меня это стоило того, чтобы иметь (возможно, более чистый код и лучшие сообщения). YMMV.

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

move to resource Функция была введена для помощи в интернационализации. Когда R# обнаруживает строку, которую можно локализовать, он предлагает переместить ее в файл ресурсов для вас. Преимущество этого состоит в том, что строки в.resx могут быть изменены на разные языки без необходимости перекомпиляции какого-либо кода.

Смотрите документацию ReSharper по этому вопросу здесь.

Другие вопросы по тегам