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 :

Difference entre string.Empty et ""


Sujet :

C#

  1. #1
    Membre habitué Avatar de lasrevinu
    Inscrit en
    Février 2010
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 215
    Points : 134
    Points
    134
    Par défaut Difference entre string.Empty et ""
    bonjour à tous et à toute,
    Je dois ecrire dans un string traiter les characteres qu'il y a dedans,
    et ensuite le vider pour réecrire dedans.(et ceci un bon nombre de fois)

    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SerialPort.Write("@stateY?");
    string a;
    a = SerialPort.ReadTo("\n");
    Y1= Convert.ToInt32(a);
     
    a = string.Empty;
     
    SerialPort.Write("@stateZ?");
    a = SerialPort.ReadTo("\n");
    Z1= Convert.ToInt32(a);
     
    a = string.Empty;
    //etc...
    quelle est la difference avec:
    merci

  2. #2
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    La différence est minime mais il y en a une.
    Ca crée un objet.

    Ca ne crée pas d'objet.

    Source : http://blogs.msdn.com/brada/archive/.../22/49997.aspx

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 99
    Points : 122
    Points
    122
    Par défaut
    Dans ton cas, le plus simple c'est de supprimer la variable a car tu ne l'utilises jamais.
    Si je fais un effort, rd doit être a et tu n'en as de toute façon pas besoin parce que tu n'en fais rien Convert.ToInt32(a) revient à Convert.ToInt32(SerialPort.ReadTo(...))
    Et meme si par hasard, tu utilisais Int32.TryParse tu n'aurais de tout façon toujours pas besoin de reassigner a entre chaque appel parce que tu vérifies que tu peux lire et ce que tu lis...

    PS: essaie quand meme de poster le code qui correspond à la question.

  4. #4
    Membre habitué Avatar de lasrevinu
    Inscrit en
    Février 2010
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 215
    Points : 134
    Points
    134
    Par défaut
    en effet je me suis trompé rd est bien a,
    je rectifie ca de suite

  5. #5
    Membre habitué Avatar de lasrevinu
    Inscrit en
    Février 2010
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 215
    Points : 134
    Points
    134
    Par défaut
    Merci realPasso,
    j'ai pas besoin de a en effet!
    je me suis pris la tete pour rien,
    lol
    comme koi des fois...
    merci encore à tout le monde

  6. #6
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    En effet il y a des fois comme ça... (et bizarrement assez souvent)

  7. #7
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    Petite rectification sur ce que j'ai dit
    Depuis le framework 2.0 il n'y a plus de différence entre "" et string.Empty
    Source : ici

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 99
    Points : 122
    Points
    122
    Par défaut
    Et celle là, elle donne quoi en perf ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    stopwatch.Restart();
    for (int i = 0; i < nb; i++)
    {
         result = Object.ReferenceEquals(String.Empty, s2);
    }
     
    stopwatch.Stop();
    Console.WriteLine("\t" + stopwatch.ElapsedMilliseconds);

  9. #9
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    Donc pour répondre à ta question ReferenceEquals est très très légèrement plus rapide. Mais comme préciser la différence est négligeable à moins de faire 42 millions de comparaisons.

    Source : ici

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 99
    Points : 122
    Points
    122
    Par défaut
    4.2 milliards

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

Discussions similaires

  1. Différence entre String.Empty .Equals("") etc
    Par mastronic dans le forum C#
    Réponses: 8
    Dernier message: 22/12/2010, 18h39
  2. Réponses: 4
    Dernier message: 06/10/2010, 09h28
  3. difference entre String attibuts[] et String[] attributs
    Par riadhhwajdii dans le forum Langage
    Réponses: 4
    Dernier message: 30/06/2009, 12h07
  4. Réponses: 3
    Dernier message: 25/10/2006, 22h54

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