2009-02-09 58 views
66

En un diccionario de esta manera:¿Qué significa {0} cuando se encuentra en una cadena en C#?

Dictionary<string, string> openWith = new Dictionary<string, string>(); 

openWith.Add("txt", "notepad.exe"); 
openWith.Add("bmp", "paint.exe"); 
openWith.Add("dib", "paint.exe"); 
openWith.Add("rtf", "wordpad.exe"); 

Console.WriteLine("For key = \"rtf\", value = {0}.", openWith["rtf"]); 

La salida es:

Para clave = valor "rtf" = wordpad.exe

¿Qué significa la {0}?

Respuesta

146

Está imprimiendo una cadena formateada. {0} significa insertar el primer parámetro después de la cadena de formato; en este caso, el valor asociado con la tecla "rtf".

Para String.Format, que es similar, si había algo así como

//   Format string     {0}   {1} 
String.Format("This {0}. The value is {1}.", "is a test", 42) 

que crearía una cadena "Esto es una prueba . El valor es ".

También puede utilizar expresiones y valores imprima varias veces:

//   Format string    {0} {1} {2} 
String.Format("Fib: {0}, {0}, {1}, {2}", 1, 1+1, 1+2) 

rendimiento "Fib: , , , "

Ver más en http://msdn.microsoft.com/en-us/library/txafckwd.aspx, que habla sobre el formato compuesto.

5

Es un marcador de posición para el primer parámetro, que en su caso se evalúa como "wordpad.exe".

Si tuviera un parámetro adicional, que tendría que utilizar {1}, etc.

4

Es un marcador de posición para un parámetro muy parecido a los especificadores de formato dentro de los actos %sprintf.

Puede comenzar a agregar elementos adicionales allí para determinar el formato también, aunque eso tiene más sentido con una variable numérica (examples here).

+3

Parece que el enlace no funciona, preocúpese por solucionarlo –

18

Es un marcador de posición en la cadena.

Por ejemplo,

string b = "world."; 

Console.WriteLine("Hello {0}", b); 

produciría esta salida:

Hello world. 

Además, puede tener tantos marcadores como desee. Esto también funciona en String.Format:

string b = "world."; 
string a = String.Format("Hello {0}", b); 

Console.WriteLine(a); 

Y sería aún obtener el mismo resultado.

10

Además del valor que desea imprimir, el {0} {1}, etc., puede especificar un formato. Por ejemplo, {0,4} será un valor que se rellena en cuatro espacios.

Hay una serie de especificadores de formato incorporados, y además, puede hacer los suyos propios. Para obtener una lista/tutorial decente, consulte String Formatting in C#. Además, hay una pregunta frecuente here.

6

Para referencia futura, en Visual Studio puede intentar colocar el cursor en el nombre del método (por ejemplo, WriteLine) y presionar F1 para obtener ayuda en ese contexto. Después de cavar, debería encontrarlo String.Format() en este caso, con mucha información útil.

Tenga en cuenta que destaca una selección (por ejemplo, haga doble clic o haciendo un lastre de selección) y golpear F1 sólo se hace una búsqueda no es la cadena contexto (que tiende a aspirar a encontrar nada útil), así que asegúrese simplemente coloca el cursor en cualquier lugar dentro de la palabra sin resaltarlo.

Esto también es útil para la documentación de clases y otros tipos.

Cuestiones relacionadas