87 votes

Que signifie {0} lorsqu'il est trouvé dans une chaîne en c #?

Dans un dictionnaire comme celui-ci:

 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 sortie est:

Pour Key = "rtf" value = wordpad.exe

Que signifie le {0}?

Je vous remercie.

185voto

Daniel LeCheminant Points 28101

Vous êtes l'impression d'une chaîne formatée. Le {0} signifie insérer le premier paramètre à la suite de la chaîne de format; dans ce cas, la valeur associée à la clé "rtf".

Pour La Chaîne.Format, ce qui est comparable, si vous aviez quelque chose comme

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

vous pouvez ainsi créer une chaîne "Ceci est un test. La valeur est de 42".

Vous pouvez également utiliser des expressions et imprimer des valeurs plusieurs fois:

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

rendement "Fib: 1, 1, 2, 3"

Pour en savoir plus http://msdn.microsoft.com/en-us/library/txafckwd.aspxqui parle de mise en forme des composites.

26voto

M4dRefluX Points 949

C'est un remplaçant dans la chaîne. Par exemple:

 string b = "world.";

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

Produirait cette sortie:

 Hello world.
 

Modifier: vous pouvez également avoir autant d’espaces réservés que vous le souhaitez. Cela fonctionne également sur String.Format.

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

Console.WriteLine(a);
 

Et vous obtiendriez toujours le même résultat.

11voto

Muad'Dib Points 14260

En plus de la valeur que vous souhaitez imprimer, l' {0} {1} etc. vous pouvez spécifier un format. Par exemple, {0,4} sera une valeur qui est rembourré pour 4 places. Il y a un certain nombre de spécificateurs de format, et en plus, vous pouvez faire votre propre. Pour une vie décente tutiorial/voir la liste http://blog.stevex.net/index.php/string-formatting-in-csharp/ il y a aussi une FAQ ici

6voto

Rob Parker Points 1674

Pour référence future, dans Visual Studio, vous pouvez essayer de placer le curseur dans le nom de la méthode (par exemple. WriteLine) et appuyez sur la touche F1 pour tirer vers le haut de l'aide sur ce contexte. Creuser autour devriez trouver vous de Chaîne.Format() dans ce cas, avec beaucoup d'informations utiles.

Notez que mettre en avant une sélection (par exemple. en double-cliquant ou en faisant un glisser-sélectionner), puis appuyez sur F1 seulement un non-cadre de recherche de chaine (qui tend à le sucer à trouver quelque chose d'utile), alors assurez-vous que vous placez le curseur n'importe où à l'intérieur de la parole sans la mettre en exergue.

C'est également utile pour la documentation sur les classes et d'autres types.

5voto

Bravax Points 7698

C'est un espace réservé pour le premier paramètre, qui dans votre cas est évalué à "wordpad.exe".

Si vous aviez un paramètre supplémentaire, vous utiliseriez {1}, etc.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X