2010-03-02 17 views
6

Apuesto a que es una pregunta fácil para usted, pero buscar SO o Google con { o } en la cadena de búsqueda no funciona muy bien.
Entonces, digamos que quiero dar salida a {Hello World}, ¿cómo hago esto usando string.format(...)?Salida '{' o '}' con string.format (...)

Editar:
se parece a esto:

string hello = "Hello World"; 
string.format("{0}", '{' + hello + '}'); 

podría hacer el trabajo, pero eso no se ve muy elegante para mí. ¿Hay alguna forma de escapar de estos caracteres dentro de la cadena de formato?

+0

de desplazamiento hacia abajo, su pregunta ya ha sido contestada. – Rory

+0

paciencia ... recibe su voto favorable y respuesta correcta lo suficientemente pronto –

+0

Lo siento, solo pensé que no lo había notado porque la edición llegó casi 8 minutos después de la respuesta. – Rory

Respuesta

13

Utilice {{ y }}. Entonces su ejemplo sería string.Format("{{Hello World}}");

+0

Esto parece ser similar a la convención printf en C++, usando %% si se quiere un% en la salida. ¿Alguna razón por la que no usaron el carácter de escape de barra invertida (que se usa en C++ para escapar de comillas, comillas dobles, barras diagonales inversas, ...)? Sólo curioso. – Patrick

+1

@Patrick: Parece que es porque * ya * tiene un uso en ese contexto: http://msdn.microsoft.com/en-us/library/0c899ak8.aspx#SpecifierEscape –

+1

@Patrick: Probablemente para inducir confusión masiva y pánico. En serio, no estoy seguro, pero tendrías que usar múltiples barras invertidas o terminaría como un escape de caracteres ("\ {" da un error de compilación porque no es un escape válido, "\\" da una sola barra invertida, por lo que necesitaría algo como "\\\\ {" que es un poco mucho ...) – Rory

2

Tuve el mismo problema hace dos semanas. Resharper lo resuelve automáticamente.

Poniéndolo como "{" + mystring + "}" y utilizando el "uso de la cadena de formato" lo convirtió automáticamente a string.format ("{{{0}}}", mystring).

+0

buena característica ("3 más para ir ..") –

0

Usted puede encontrar

var hello = "Hello world"; 
var test = string.Format("{0}{1}{2}", "{", hello, "}"); 

fácil de leer que

var test = string.Format("{{{0}}}", hello);