2009-08-29 15 views
23

He estado en todos los tubos y no puedo entender esto. Podría ser simple.Escape de una comilla simple en String.Format()

El siguiente String.Format llamada:

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

correctamente devuelve esto:

Sep 23 de 08 a 12:57

Ahora digamos que quiero añadir una comilla simple antes el año, para devolver esto:

Sep 23 de 08 a 12:57

Desde la comilla simple es un carácter de escape reservado, cómo puedo escapar de la comilla simple de conseguir que se muestre?

He intentado comillas simples dobles, triples y cuádruples, sin suerte.

Respuesta

33

Puedes escapar usando una barra invertida wh de lo cual tendrás que escapar De cualquier

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

o

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

en mi defensa, quedé hipnotizado por la forma en que tienes que hacer {{{para escapar de los cráneos en un 'String.Format()' y perdí la cabeza temporalmente ... ¡gracias! –

+6

¡Oh hombre! Esta respuesta aceptada debe ir en mi CV ahora ...; ^) –

+0

El% de caracteres no es necesario en este caso, ya que% d y% H se combinan con otros patrones de formato. Lo hace un poco más claro sin ellos. –

4

Podrías usar la entidad HTML, si es para HTML.

- Editar

' 

- Edit

sólo para hacer este post no está mal, como todo el mundo ha señalado, escapando de las obras excelentes :)

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

Y ese es el la última vez que no probé algo basado en quién está publicando :)

+0

+1 para la última línea !!! ¡¡bien dicho!! – aProgrammer

2

No me gustan las cadenas C# @ a menos que realmente tiene que usarlos, así que en realidad ir con esto.

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

Es solo una preferencia para la que le resulta más fácil "leer".

+2

Intenta escribir una prueba unitaria que pruebe una clase que detecte caracteres escapados y los procese. Comenzarás a amar @ strings a toda prisa. –

+0

Después de 5 minutos escribiendo expresiones regulares, comencé a adorar @ strings también. :-) –

Cuestiones relacionadas