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 :

[C#] Quelles différences entre string et String ?


Sujet :

C#

  1. #1
    Membre régulier Avatar de annalady
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 169
    Points : 88
    Points
    88
    Par défaut [C#] Quelles différences entre string et String ?
    Salut

    Existe-t-il une différence entre string et String ?

    Et y'a-t-il un avantage à utiliser l'un plutôt que l'autre ?

    Merci !

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Aucune différence: String représente le type et string est un alias vers ce type.

    C'est comme Int32 et int.


    A+

  3. #3
    Membre régulier Avatar de annalady
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 169
    Points : 88
    Points
    88
    Par défaut
    Ok merci

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 15
    Points : 20
    Points
    20
    Par défaut
    Non ce n'est pas vraiment ça.

    string est un alias (donc exactement la même chose) de String.

    Int32 est un objet encapsulant le type primitif int.
    Ca n'est pas la même chose.

    Int32 permet d'avoir un objet "de type int" pour tous les cas où on ne peut pas manipuler un type primitif.

    La conversion de int vers Int32 (et inversement) a un coût.

  5. #5
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par duncan55
    Non ce n'est pas vraiment ça.

    string est un alias (donc exactement la même chose) de String.

    Int32 est un objet encapsulant le type primitif int.
    Ca n'est pas la même chose.

    Int32 permet d'avoir un objet "de type int" pour tous les cas où on ne peut pas manipuler un type primitif.

    La conversion de int vers Int32 (et inversement) a un coût.
    Ta remarque est interressante duncan55, peux-tu nous offrir quelques liens à ce propos
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    Non, int est bien un simple alias vers System.Int32 , c'est la même chose. (c'est en tout cas ce qui est dit dans les spécifications du langage, voir ici , paragraphe 11.1.4).

  7. #7
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 15
    Points : 20
    Points
    20
    Par défaut
    Autant pour moi, j'avais mal compris, int est bien identique à Int32.

    Cela signifie donc qu'un champs int est un objet ?
    Il n'est pas possible d'avoir juste une valeur entière sans la notion de référence des objets ?

    EDIT:
    The example
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    class Test {
        static void Main() {
            int i = 123;
            object o = i; // boxing
            int j = (int) o; // unboxing
        }
    }
    is more interesting. An int value can be converted to object and back again to int. This example shows
    both boxing and unboxing. When a variable of a value type needs to be converted to a reference type, an
    object box is allocated to hold the value, and the value is copied into the box. Unboxing is just the opposite.
    When an object box is cast back to its original value type, the value is copied out of the box and into the
    appropriate storage location.
    Cela signifie que Int32 n'est pas un objet ?
    ou alors, C'est le compilateur qui fait le boxing en cas d'utilisation des méthodes "objets" de Int32.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 105
    Points : 134
    Points
    134
    Par défaut
    Si, c'est un objet mais qui est traité non pas par une référence, mais directement en tant qu'entité, par sa valeur. Il ne faut pas confondre avec Java qui dispose d'un type primitif int et de sa classe 'équivalente' traitée par référence Integer. En C#, int et Int32 sont des synonymes pour le type entier traité par valeur.

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

Discussions similaires

  1. Différence entre les propriétés String et Value des objets Uicontrol
    Par occor dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 18/01/2008, 12h13
  2. Réponses: 67
    Dernier message: 16/12/2007, 13h41
  3. [Xquery]différence entre data() et string()
    Par mamiberkof dans le forum XQUERY/SGBD
    Réponses: 1
    Dernier message: 10/01/2007, 13h14
  4. [Type Sql] Quelles différences entre ces bases ?
    Par wonderboy dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 16/03/2006, 09h38
  5. Quelle différence entre "réel simple" et "déc
    Par pyxosledisciple dans le forum Access
    Réponses: 2
    Dernier message: 11/01/2006, 11h51

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