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

Dans un dictionnaire comme celui-ci:

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"]); 

La sortie est la suivante:

For Key = “rtf” value = wordpad.exe

Que signifie le {0} ?

Vous imprimez une chaîne formatée. Le {0} signifie insérer le premier paramètre suivant la chaîne de format; dans ce cas, la valeur associée à la clé “rtf”.

Pour Ssortingng.Format, qui est similaire, si vous aviez quelque chose comme

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

vous créez une chaîne “Ceci est un test . La valeur est 42 “.

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

 // Format ssortingng {0} {1} {2} Ssortingng.Format("Fib: {0}, {0}, {1}, {2}", 1, 1+1, 1+2) 

donnant “Fib: 1 , 1 , 2 , 3

Voir plus à http://msdn.microsoft.com/en-us/library/txafckwd.aspx , qui parle de formatage composite.

C’est un espace réservé dans la chaîne.

Par exemple,

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

produirait cette sortie:

 Hello world. 

En outre, vous pouvez avoir autant d’espaces réservés que vous le souhaitez. Cela fonctionne également sur Ssortingng.Format :

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

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

En plus de la valeur que vous souhaitez imprimer, le {0} {1} , etc., vous pouvez spécifier un format. Par exemple, {0,4} sera une valeur complétée par quatre espaces.

Il existe un certain nombre de spécificateurs de format intégrés, et vous pouvez en outre créer les vôtres. Pour un tutoriel / liste décent, voir Formatage de chaîne en C # . Il y a aussi une FAQ ici .

Pour référence ultérieure, dans Visual Studio, vous pouvez essayer de placer le curseur dans le nom de la méthode (par exemple, WriteLine) et appuyez sur F1 pour obtenir de l’aide sur ce contexte. Dans ce cas, vous devriez trouver Ssortingng.Format() avec beaucoup d’informations utiles.

Notez que surligner une sélection (par exemple, double-cliquer ou faire glisser-sélectionner) et appuyer sur F1 fait uniquement une recherche de chaîne non contextuelle (qui a tendance à ne rien trouver d’utile), alors assurez-vous de placer le curseur n’importe où à l’intérieur du mot sans le souligner.

Ceci est également utile pour la documentation sur les classes et autres types.

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.

C’est un espace réservé pour un paramètre, tout comme le spécificateur de format %s agit dans printf .

Vous pouvez commencer à append des éléments supplémentaires pour déterminer le format, bien que cela soit plus logique avec une variable numérique ( exemples ici ).

C’est ce que nous avons appelé Composite Formatting du .NET Framework pour convertir la valeur d’un object en sa représentation textuelle et incorporer cette représentation dans une chaîne. La chaîne résultante est écrite dans le stream de sortie.

La méthode surchargée Console.WriteLine (Ssortingng, Object) Écrit la représentation textuelle de l’object spécifié, suivie du terminateur de ligne en cours, dans le stream de sortie standard en utilisant les informations de format spécifiées.