Сегодня я обнаружил, что размещение строк в файле ресурсов приведет к тому, что они будут обрабатываться как литералы, то есть размещение «Текст для первой строки \ n Текст для второй строки» приведет к экранированию самого escape-символа, и поэтому то, что хранится, будет " Текст для первой строки \ n Текст для второй строки "- а затем они появляются на дисплее, вместо возврата каретки и табуляции.
Поэтому я бы хотел использовать string.replace, чтобы превратить \\ в \ - похоже, это не работает.
s.Replace("\\\\", "\\"); не меняет строку вообще, потому что строка считает, что есть только одна обратная косая черта
s.Replace("\\", "");заменяет все двойные кавычки и оставляет мне только n вместо \ n
Кроме того, использование @ и вдвое меньшего количества символов \ или метод Regex.Replace дают тот же результат
кто-нибудь знает хороший способ сделать это, не переходя от символа к символу?
извините, это должно было быть 2 обратных косых черты в 1 обратную косую черту





Поскольку \n на самом деле является одним символом, вы не можете добиться этого, просто заменив обратную косую черту в строке. Вам нужно будет заменить каждую пару \ и следующий символ на экранированный символ, например:
s.Replace("\\n", "\n");
s.Replace("\\t", "\t");
etc
Когда я попробовал это (программа C#), мне пришлось использовать "s = s.Replace (" \\ n "," \ n ");".
Вам лучше подправить сами файлы resx. Разрывы строк можно вводить с помощью двух механизмов: вы можете редактировать файл resx как XML (щелкните правой кнопкой мыши в обозревателе решений, выберите «Открыть как» и выберите XML) или вы можете сделать это в дизайнере.
Если вы делаете это в XML, просто нажмите Enter, возвратитесь к началу созданной вами новой строки, и все готово. Вы также можете сделать это с помощью поиска и замены, хотя это будет сложно.
Если вы используете редактор resx с графическим интерфейсом пользователя, удерживая нажатой клавишу SHIFT и одновременно нажимая клавишу ВВОД, вы получите разрыв строки.
Вы могли бы сделать замену во время выполнения, но, как вы понимаете, это сложно начать - и, на мой взгляд, это запах кода. (Вы также можете указать аргумент производительности, но это будет зависеть от того, как часто вызываются строковые ресурсы, и от масштаба вашего приложения в целом.)
На самом деле я использую решение Джона и напрямую редактирую XML, поскольку это лучшее решение для проекта, но codelogic ответил на вопрос, который сводил меня с ума.
га. codelogic - парень. он отправил ответ, который я пометил как правильный. Примерно 20 строк над этим комментарием.
О ... ха-ха. Не читал имена пользователей: D Думал, что это какой-то модный сайт.
На самом деле я просто пытался на это ухватиться, но это занято. И даже не настоящий сайт, тупые доменные браконьеры.
Думаю, здесь где-то есть опечатка. Я могу приблизительно понять, о чем вы спрашиваете, по контексту, но это: «используйте string.replace, чтобы превратить \ в \ - похоже, это не работает». не имеет никакого смысла, так как похоже, что вы хотите превратить одиночные обратные косые черты в одиночные обратные косые черты.