-
Variable précédé de "@"
Bonjour,
Bon, c'est peut-être une question bête, mais comme google ne me permet pas de rechercher un "@" et que je n'ai aucune idée de sa signification, je ne sais pas vraiment comment chercher la réponse... :?
Voilà, j'ai un bout de code, avec un appel à une valeur précédée du caractère "@", qu'est-ce que ça signifie ? Voici mon appel (sachant que ce sont des objets maison et que la propriétés "Files" est un tableau d'objet possédant une propriété "OriginalFilename" qui est de type string) :
Code:
sNom = @uploadResult.Files[i].OriginalFilename;
Merci d'avance pour votre aide ;)
-
Bonjour,
Le "@" permet de ne par prendre en compte les caractères d'échappement.
Dans ton exemple :
uploadResult.Files[i].OriginalFilename doit être équivalent à "c:\\mondossier\\monnomdefichier" avec le \ d'échappement
en ajoutant @ devant, il équivaut à "c:\mondossier\monnomdefichier"
-
Le @ sert pour la définition de ce que l'on appelle les string verbatim. Mais dans l'exemple de code donné, il ne sert absolument à rien. C'est uniquement utile lorsque l'on défini le contenu d'une chaîne
Par exemple
Code:
string str = @"C:\MonRep\MonFichier"
-
Merci tous les deux ! ;) Même si vous vous contredisez un peu... :p
@StormimOn: Donc ce que debug a dit ne fonctionnerait pas ? Si seul le cas que tu donnes sert à quelque chose, je ne vois pas vraiment l'intérêt...
Je vais faire quelques test !
-
Ce qu'à indiqué debug, au niveau de l'exemple, est effectivement faux. Sinon elle a tout bon pour l'utilité du @ devant une chaîne.
Dans une chaîne, le caractère \ est le caractère d'échappement. Si on veut afficher ce caractère dans une chaîne il faut le doubler.
Code:
string unc = "\\\\Poste1\\Rep1";
Le @ permet d'interpréter le caractère d'échappement (entre autres choses) comme un caractère normal
Code:
string unc = @"\\Poste1\Rep1";
Si on regarde la valeur de la variable en debug, le résultat est le même dans les 2 cas ("\\\\Poste1\\Rep1"). Normal car c'est la représentation de la chaîne pour le framework, ça on ne peut pas le changer.
Le @ n'est qu'une "simplification" d'écriture et son utilisation n'a de sens que lorsque l'on défini une chaîne de caractères (@"..."). Cela permet d'améliorer la lisibilité du code par exemple (pratique lorsque l'on défini beaucoup de chemins UNC ou autres).
-
Ah oki ! Donc c'est juste pour se simplifier la vie quand on écrit une chaîne "à la main" dans le code, pour pas se taper tous les "\" d'échappement !
Merci bien, c'est plus clair ;)