Che cosa significa {0} quando viene trovato in una stringa in C #?


85

In un dizionario come questo:

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 Key = valore "rtf" = wordpad.exe

Cosa {0}significa?

Risposte:


181

Stai stampando una stringa formattata. Il {0} significa inserire il primo parametro dopo la stringa di formato; in questo caso il valore associato alla chiave "rtf".

Per String.Format, che è simile, se avessi qualcosa di simile

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

creeresti una stringa "Questo è un test . Il valore è 42 ".

Puoi anche utilizzare espressioni e stampare i valori più volte:

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

cedendo "Fib: 1 , 1 , 2 , 3 "

Scopri di più su http://msdn.microsoft.com/en-us/library/txafckwd.aspx , che parla della formattazione composita.


25

È un segnaposto nella stringa.

Per esempio,

string b = "world.";

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

produrrebbe questo output:

Hello world.

Inoltre, puoi avere tutti i segnaposto che desideri. Funziona anche su String.Format:

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

Console.WriteLine(a);

E otterresti comunque lo stesso risultato.


11

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

Esistono numerosi identificatori di formato incorporati e inoltre puoi crearne uno tuo. Per un tutorial / elenco decente, vedere Formattazione delle stringhe in C # . Inoltre, c'è una FAQ qui .


6

Per riferimento futuro, in Visual Studio puoi provare a posizionare il cursore nel nome del metodo (ad esempio, WriteLine) e premere F1per visualizzare la guida in quel contesto. Scavando in giro dovrebbe quindi trovartiString.Format() in questo caso, con molte informazioni utili.

Notare che evidenziando una selezione (ad esempio, facendo doppio clic o facendo una selezione con trascinamento) e premendo F1 si esegue solo una ricerca di stringhe non contestuali (che tende a fare schifo nel trovare qualcosa di utile), quindi assicurati di posizionare il cursore ovunque all'interno la parola senza evidenziarla.

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


5

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

Se avessi un parametro aggiuntivo, useresti {1}, ecc.


4

È un segnaposto per un parametro molto simile %sall'identificatore di formato che agisce all'internoprintf .

Puoi iniziare ad aggiungere cose extra per determinare anche il formato, anche se questo ha più senso con una variabile numerica ( esempi qui ).


0

Questo è ciò che abbiamo chiamato Formattazione composita di .NET Framework per convertire il valore di un oggetto nella sua rappresentazione di testo e incorporare tale rappresentazione in una stringa. La stringa risultante viene scritta nel flusso di output.

Il metodo Console.WriteLine sovraccarico (String, Object) Scrive la rappresentazione testuale dell'oggetto specificato, seguita dal terminatore di riga corrente, nel flusso di output standard utilizzando le informazioni sul formato specificate.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.