2009-02-09 9 views
66

In un dizionario come questo:Cosa significa {0} quando si trova in una stringa in 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"]); 

L'output è:

per la chiave = valore "rtf" = wordpad.exe

Cosa significa il {0} significa?

risposta

146

Si sta stampando una stringa formattata. Il {0} significa inserire il primo parametro seguendo la stringa di formato; in questo caso il valore associato al tasto "rtf".

Per String.Format, che è simile, se si ha qualcosa di simile

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

devi creare una stringa "Questo è un test . Il valore è ".

È inoltre possibile utilizzare le espressioni e valori stampare più volte:

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

cedendo "Fib: , , , "

Tutte a http://msdn.microsoft.com/en-us/library/txafckwd.aspx, che parla della formattazione composita.

5

È un segnaposto per il primo parametro, che nel tuo caso restituisce "wordpad.exe".

Se tu avessi un parametro aggiuntivo, devi usare {1}, ecc

4

E 'un segnaposto per un parametro molto simile agli atti identificatore di formato %s all'interno printf.

È possibile iniziare ad aggiungere altre cose in là per determinare il formato, anche se ciò ha più senso con una variabile numerica (examples here).

+3

Il collegamento non sembra funzionare - cura di sistemarlo –

18

È un segnaposto nella stringa.

Per esempio,

string b = "world."; 

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

produrrebbe questo output:

Hello world. 

Inoltre, è possibile avere tanti segnaposto come si desidera. Questo funziona anche su String.Format:

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

Console.WriteLine(a); 

e si dovrebbe ancora ottenere la stessa uscita.

10

Oltre al valore che si desidera stampare, lo {0} {1}, ecc., È possibile specificare un formato. Ad esempio, {0,4} sarà un valore riempito su quattro spazi.

Esistono numerosi identificatori di formato incorporati e inoltre è possibile crearne uno proprio. Per un tutorial/elenco decente vedi String Formatting in C#. Inoltre, c'è una domanda frequente here.

6

Per riferimento futuro, in Visual Studio è possibile provare a posizionare il cursore nel nome del metodo (ad esempio, WriteLine) e premere F1 per richiamare la guida su tale contesto. Scavando dovrebbe quindi trovarti String.Format() in questo caso, con molte informazioni utili.

Nota che evidenziare una selezione (ad esempio, facendo doppio clic o fare un drag-select) e colpendo F1 fa solo una stringa di ricerca non-contesto (che tende a succhiare a trovare nulla di utile), in modo da assicurarsi basta posizionare il cursore ovunque all'interno della parola senza evidenziarlo.

Questo è anche utile per la documentazione su classi e altri tipi.