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

Dotnet Discussion :

Type primitif (int, bool) ou type du CTS (Int32, Boolean)


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Par défaut Type primitif (int, bool) ou type du CTS (Int32, Boolean)
    Bonjour,

    J'aimerais savoir quel est la meilleure solution; utiliser un type primitif (int) ou utiliser un type du CTS (Int32).

    Quels sont les avantages / inconvénients ?


    Yoshio

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 547
    Par défaut
    Salut,

    c'est la meme chose. =)

    Extract du standard :

    C# provides a set of predefined struct types called the simple types. The simple types are identified through reserved words, but these reserved words are simply aliases for predefined struct types in the System namespace, as described in the table below.
    Idem pour string (System.String) et object (System.Object).

  3. #3
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Par défaut
    Je ne pense pas qu'un int prenne la même place en mémoire qu'un Int32.

  4. #4
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    int est un alias pour System.Int32 (tout comme bool l'est pour Boolean, long pour Int64, etc.).

    int i;
    System.Int32 i;

    ces 2 déclarations sont identiques (au niveau rapidité, execution, espace mémoire occupé). La diférence est que la 2eme est moins utilisée car plus longue à écrire...

    Cela correspond dans les deux cas à une variable entière codée sur 32bits.
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  5. #5
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    En général je dirai la chose suivante : si vous avez à tout prix besoin de vous assurer qu'un int fait bien 32 bits, utilisez Int32 (cas d'une correspondance avec une colonne de base de données).

    Sans cette contrainte, utilisez un int. Pourquoi en fait? Et bien pour le moment int map vers Int32, je ne suis pas sûr que lorsque les systèmes 64 bits se seront imposés ce int ne sera pas tout d'un coup un Int64 pour des raisons de performances.

    Il y a eu des exemples de ce genre de choses en C++ avec le passage de 16 à 32bits, d'ou l'utilisation massive de typedef dans certains frameworks.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Par défaut
    Non, Non, Non...

    Int32 = int
    "Int32" est I-DEN-TI-QUE à "int" en processeur 32 / 64 / 1024 bits...

    Int32 = int
    C'est un allias, lors de la compil int devient Int32 et fera TOU-JOURS 32 bits...
    Tout comme long sera toujours un Int64...

    Je comprend pas pourquoi certains cherche tant la complexité...

    Vous pensiez quand même pas que Microsoft allait laisser cette histoire de 32 bits passé en 64 en fonction de la plateforme cible?...
    Ils ont définit les types et les allias ainsi, ils ne vont pas changer à l'avenir par pur craprice...

    Surtout que le framework entier est définit ainsi :

    public static int Parse(string s)
    Member of System.Int32

    Summary:
    Converts the string representation of a number to its 32-bit signed integer equivalent.

Discussions similaires

  1. [WMI] Variant de type Unsigned Int 64 ...
    Par phplive dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 09/05/2006, 20h15
  2. Réponses: 3
    Dernier message: 07/02/2006, 22h18
  3. Réponses: 9
    Dernier message: 06/07/2005, 14h20
  4. [info] passer d'un type primitif a String
    Par soad dans le forum Langage
    Réponses: 3
    Dernier message: 08/05/2005, 13h19
  5. [prog dynamique]Constructeur avec type primitif
    Par -=Spoon=- dans le forum Langage
    Réponses: 2
    Dernier message: 16/12/2004, 10h33

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