Выход из одинарной кавычки в String.Format () - PullRequest
24 голосов
/ 29 августа 2009

Я пробежался по всем трубкам, и я не могу понять это. Может быть просто.

Следующий String.Format вызов:

return dt.ToString("MMM d yy 'at' H:mmm");

Правильно возвращает это:

23 сентября 2008 г. в 12: 57

Теперь, скажем, я хочу добавить одну цитату до года, чтобы вернуть это:

23 сентября 2008 г. в 12: 57

Так как одиночная кавычка является зарезервированным символом escape, как мне выбрать одиночную кавычку, чтобы отобразить ее?

Я пробовал двойные, тройные и четверные одинарные кавычки, но безуспешно.

Ответы [ 3 ]

34 голосов
/ 29 августа 2009

Вы можете избежать его, используя обратную косую черту, которую вам придется убежать. Или

return dt.ToString(@"MMM d \'yy 'at' H:mmm");

или

return dt.ToString("MMM d \\'yy 'at' H:mmm");
4 голосов
/ 29 августа 2009

Вы можете просто использовать HTML-сущность, если она для HTML.

- Правка

'

- Правка

Просто чтобы сделать этот пост не ошибочным, как все уже отметили, экранирование работает нормально:)

string s = t.ToString("MMM d \\'yy 'at' H:mmm");

И это последний раз, когда я не проверяю что-то, основываясь на том, кто публикует:)

2 голосов
/ 29 августа 2009

Мне не нравятся строки C # @, если только мне действительно не нужно их использовать, поэтому я бы на самом деле согласился с этим.

return dt.ToString("MMM d \\'yy 'at' H:mmm");

Это всего лишь предпочтение, хотя вам легче "читать".

...