151 votes

C # '@' devant une chaîne

Double Possible:
Quel est le @ devant une chaîne de caractères pour .NET?

J'ai trouvé ça dans un C# livre d'étude

DirectoryInfo dir = new DirectoryInfo(key.Key.ToString() + @":\");

Le livre n'a toutefois pas expliquer ce que le symbole " @ " a été pour. J'ai essayé de chercher MSDN C# les Opérateurs mais ce n'est pas répertoriée. Je peux deviner qu'il permet au développeur de ne pas avoir à s'échapper d'un '\' ou permet-il de ne pas avoir des séquences d'échappement?

Qu'est-ce et pourquoi voudrais-je utiliser @":\" au lieu de ":\\"?

Merci pour l'aide

Edit: Voir le commentaire ci-dessous pour une question similaire

243voto

Mark Avenius Points 7344

Cela signifie qu’il faut interpréter la chaîne littéralement (c’est-à-dire que vous ne pouvez échapper à aucun caractère de la chaîne si vous utilisez le préfixe @). Il améliore la lisibilité dans les cas où il peut être utilisé.

Par exemple, si vous travailliez avec un chemin UNC, ceci:

 @"\\servername\share\folder"
 

est plus gentil que ça:

 "\\\\servername\\share\\folder"
 

87voto

Neil N Points 14566

Cela signifie également que vous pouvez utiliser des mots réservés comme noms de variables

vous voulez une classe nommée classe, puisque classe est un mot réservé, vous pouvez appeler votre classe:

 IList<Student> @class = new List<Student>();
 

28voto

MrEyes Points 3571

La préfixe de la chaîne avec un @ indique qu'elle doit être traitée comme un littéral, c'est-à-dire qu'elle ne doit pas s'échapper.

Par exemple, si votre chaîne contient un chemin, procédez comme suit:

 string path = "c:\\mypath\\to\\myfile.txt";
 

Le @ vous permet de faire ceci:

 string path = @"c:\mypath\to\myfile.txt";
 

Notez le manque de doubles barres obliques (échappées)

11voto

Doodloo Points 416

Notez également que "échapper" signifie "utiliser la barre oblique inverse comme indicateur des caractères spéciaux". Vous pouvez mettre une fin de ligne dans une chaîne en faisant cela, par exemple:

String foo = "Bonjour \

Là";

2voto

Darin Dimitrov Points 528142

A quoi sert-il et pourquoi utiliser @ ": \" au lieu de ": \"?

Parce que lorsque vous avez une longue piqûre avec plusieurs \ vous n'avez pas besoin de les échapper tous.

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