66 votes

Que fait le préfixe @ sur les littéraux de chaîne en C#

J'ai lu un article C# pour combiner un chemin en utilisant Path.Combine (part1,part2).

Il utilise les éléments suivants :

 string part1 = @"c:\temp";
string part2 = @"assembly.txt";

Puis-je savoir à quoi servent @ dans part1 et part2 ?

85voto

abatishchev Points 42425

@ n'est lié à aucune méthode.

Cela signifie que vous n'avez pas besoin d'échapper les caractères spéciaux dans la chaîne qui suit le symbole :

 @"c:\temp"

est égal à

 "c:\\temp"

Une telle chaîne est appelée « verbatim » ou @-quoted. Voir MSDN .

27voto

V4Vendetta Points 15354

Comme d'autres l'ont dit, c'est un moyen pour que vous n'ayez pas besoin d'échapper aux caractères spéciaux et très utile pour spécifier les chemins de fichiers.

 string s1 =@"C:\MyFolder\Blue.jpg";

Une autre utilisation est lorsque vous avez de grandes chaînes et que vous souhaitez qu'elles soient affichées sur plusieurs lignes plutôt que sur une longue.

 string s2 =@"This could be very large string something like a Select query
which you would want to be shown spanning across multiple lines 
rather than scrolling to the right and see what it all reads up";

2voto

MajesticRa Points 2244

Avec @, vous n'avez pas besoin d'échapper les caractères spéciaux.

Il faudrait donc écrire "c:\\temp" sans @

Si plus de précision, cela s'appelle des chaînes 'verbatim'. Vous pouvez lire ici à ce sujet : http://msdn.microsoft.com/en-us/library/aa691090(v=vs.71).aspx

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