Sascha Manns Ответов: 2

Как заменить хэш-знак на экранированный?


Я пишу помощника для заявлений на работу. Там может быть, что jobtitle-это "Softwaredeveloper C#". Но для создания заявки на работу я использую LaTEX в фоновом режиме. Но он терпит неудачу, управляя этой строкой, и нуждается в "\#".

Я попробовал код ниже. Но это не работает. Как написано там это должно сработать.

Неужели я что-то упустил?

Что я уже пробовал:

_prepare.Replace(@"#", @"\#");

_prepare.Replace(@"#", @"\\#");

_prepare.Replace("#", "\#");

_prepare.Replace("#", "\\#");

2 Ответов

Рейтинг:
15

F-ES Sitecore

строка.Replace возвращает новую строку с замененным текстом, она не обновляет строку, которую вы вызываете. Так что вам нужно;

_prepare = _prepare.Replace(@"#", @"\#");


Строка.Метод Замены (Система) | Microsoft Docs[^]


Sascha Manns

Большое спасибо. Вот в чем была проблема :-)

Рейтинг:
1

OriginalGriff

Мы не можем сказать - мы понятия не имеем, что вы делаете с текстом, как только вы вызвали Replace.

Так что все будет зависеть от тебя.
К счастью, у вас есть инструмент, который поможет вам выяснить, что происходит: отладчик. Если вы не знаете, как его использовать, то быстрый Google для "Visual Studio debugger" должен дать вам необходимую информацию.

Поместите точку останова в первую строку функции и запустите код через отладчик. Затем посмотрите на свой код и на свои данные и определите, что должно произойти вручную. Затем по одному шагу в каждой строке проверяйте, что то, что вы ожидали, произойдет именно так, как и произошло. Когда это не так, тогда у вас есть проблема, и вы можете вернуться назад (или запустить ее снова и посмотреть более внимательно), чтобы выяснить, почему.

Извините, но мы не можем сделать это за вас - пришло время вам освоить новый (и очень, очень полезный) навык: отладку!