¿Qué significa {0} cuando se encuentra en una cadena en C #?

En un diccionario como este:

Dictionary openWith = new Dictionary(); 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"]); 

El resultado es:

Para Key = “rtf” value = wordpad.exe

¿Qué significa {0} ?

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 tenía algo así como

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

crearías una cadena “Esto es una prueba . El valor es 42 “.

También puede usar expresiones e imprimir valores múltiples veces:

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

produciendo “Fib: 1 , 1 , 2 , 3

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

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 de posición como desee. Esto también funciona en String.Format :

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

Y aún obtendrías la misma salida.

Además del valor que desea imprimir, {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, vea Formato de cadenas en C # . Además, hay una pregunta frecuente aquí .

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

Tenga en cuenta que resaltar una selección (por ejemplo, hacer doble clic o hacer una selección de arrastre) y presionar F1 solo hace una búsqueda de cadenas sin contexto (que tiende a apestar para encontrar algo útil), así que asegúrese de colocar 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.

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, usaría {1} , etc.

Es un marcador de posición para un parámetro muy parecido a como el especificador de formato %s actúa dentro de printf .

Puedes comenzar a agregar cosas adicionales allí para determinar el formato también, aunque eso tiene más sentido con una variable numérica ( ejemplos aquí ).

Esto es lo que llamamos Formato compuesto de .NET Framework para convertir el valor de un objeto a su representación de texto e insertar esa representación en una cadena. La cadena resultante se escribe en la secuencia de salida.

El método Console.WriteLine sobrecargado (String, Object) Escribe la representación de texto del objeto especificado, seguido del terminador de línea actual, en la secuencia de salida estándar utilizando la información de formato especificada.