IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Variable précédé de "@"


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    sNom = @uploadResult.Files[i].OriginalFilename;
    Merci d'avance pour votre aide

  2. #2
    Membre éprouvé
    Avatar de debug
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    1 034
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 034
    Par défaut
    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"

  3. #3
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    string str = @"C:\MonRep\MonFichier"

  4. #4
    Invité
    Invité(e)
    Par défaut
    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 !

  5. #5
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    string unc = "\\\\Poste1\\Rep1";
    Le @ permet d'interpréter le caractère d'échappement (entre autres choses) comme un caractère normal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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).

  6. #6
    Invité
    Invité(e)
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 01/05/2009, 16h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo