2009-08-29 21 views
23

Sono stato in tutto il 'tubi e non riesco a capire questo fuori. Potrebbe essere semplice.Escaping virgoletta singola in String.Format()

Il String.Format chiamata seguente:

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

restituisce correttamente questo:

23 settembre 08 a 12:57

Ora diciamo che voglio aggiungere una sola offerta prima l'anno, per restituire questo:

23 settembre '08 a 12:57

Dal momento che il singolo apice è un carattere di escape riservato, come faccio a sfuggire alla sola citazione per farlo visualizzare?

Ho provato le virgolette doppie, triple e quadruple, senza fortuna.

risposta

33

Puoi scappare usando un backslash che dovrai scappare. In entrambi i

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

o

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

in mia difesa, sono rimasto ipnotizzato dal modo in cui devi fare {{{per sfuggire ai curlies in un 'String.Format()' e perdo temporaneamente la testa .. grazie! –

+6

Oh uomo! Questa risposta accettata deve andare sul mio CV adesso ...; ^) –

+0

In questo caso i caratteri% non sono necessari poiché% d e% H sono combinati con altri modelli di formato. Lo rende un po 'più chiaro senza di loro. –

4

Si potrebbe semplicemente usare l'entità HTML, se è per HTML.

- Modifica

' 

- modifica

solo per fare questo post non è sbagliato, come tutti gli altri ha notato, sfuggendo alle opere eccellenti :)

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

E questa è la l'ultima volta non provo qualcosa basandomi su chi sta postando :)

+0

+1 per l'ultima riga !!! ben detto!! – aProgrammer

2

Non mi piace le stringhe C# @ a meno che non devo proprio usarli quindi vorrei davvero andare con questo.

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

È solo una preferenza per la quale è più facile "leggere".

+2

Provare a scrivere un test unitario per testare una classe che rileva i caratteri di escape e li elabora. Inizierai ad amare stringhe @ in gran fretta. –

+0

Dopo 5 minuti di scrittura delle espressioni regolari, ho iniziato ad amare anche le stringhe @. :-) –

Problemi correlati