Экранирование одинарной кавычки в String.Format()
-
20-09-2019 - |
Вопрос
Я облазил все трубки и не могу понять этого.Может быть, просто.
Следующее String.Format
вызов:
return dt.ToString("MMM d yy 'at' H:mmm");
Правильно возвращает это:
23 сен 08 в 12:57
Теперь предположим, что я хочу добавить одну кавычку перед годом, чтобы вернуть это:
23 сен.
Поскольку одинарная кавычка является зарезервированным escape-символом, как мне избежать одинарной кавычки, чтобы она отображалась?
Я пробовал двойные, тройные и четверные одинарные кавычки, но безуспешно.
Решение
Вы можете избежать его, используя обратную косую черту, которую вам придется экранировать.Или
return dt.ToString(@"MMM d \'yy 'at' H:mmm");
или
return dt.ToString("MMM d \\'yy 'at' H:mmm");
Другие советы
Вы можете просто использовать объект HTML, если он предназначен для HTML.
-- Редактировать
'
-- Редактировать
Просто чтобы этот пост не был ошибочным, как уже заметили все остальные, экранирование работает нормально :)
string s = t.ToString("MMM d \\'yy 'at' H:mmm");
И это последний раз, когда я не тестирую что-то на основе того, кто публикует :)
Мне не нравятся строки C# @, если только мне действительно не нужно их использовать, поэтому я бы выбрал это.
return dt.ToString("MMM d \\'yy 'at' H:mmm");
Это просто предпочтение, которое вам легче «читать».