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 :

Différence entre un (cast) et un System.Convert ?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 224
    Par défaut Différence entre un (cast) et un System.Convert ?
    Bonjour,

    je cherche à savoir quelle est la différence entre l'utilisation de casting (conversion explicite d'après la doc msdn) et un System.Convert en C#

    Mis à part la possibilité de perdre en précision (par exemple d'un double vers un int) dans les deux façons de faire :

    Y a t'il une différence de performance ?
    Comment C# .Net fait il réellement pour faire l'une ou l'autre ?
    (pourquoi ces deux façons de faire ?)

    Le cast passe t'il par une conversion en bit de données ? Qu'en est il pour le System.Convert ?

    Vaut'il mieux privilégier le System.Convert que le casting en général et pourquoi ?

    J'ai quelques pistes de la doc msdn :

    Vue d'ensemble des conversions :
    http://msdn2.microsoft.com/fr-fr/lib...99(VS.80).aspx

    System.Convert :
    http://msdn2.microsoft.com/fr-fr/lib...f1(VS.80).aspx

    Conversion explicite (casting) :
    http://msdn2.microsoft.com/fr-fr/lib...58(VS.80).aspx

    En parcourant les docs de msdn, je n'ai pas trouvé d'avertissement à ce sujet ni de documentation qui me donne vraiment la différence de performance entre les deux.

    Je pense que ces deux façons de faire sont identiques et que pour C# elles reviennent au même mais je ne suis absolument pas certain.

    Ya t'il des experts pour m'éclairer ?

    D'avance merci

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    peut-etre qu'avec les fonctions de Convert tu as davantages de possibilités
    voir certains cast impossibe sans passer par le Convert

    The Monz, Toulouse

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 224
    Par défaut
    c'est vrai j'avais remarqué ça aussi
    obligé de passé par un Convert parfois ..

    la question reste de savoir s'il y a différence de performance entre les deux etc.. et la raison du phénomène que tu viens de soulever

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    si tu veux "vraiment" voir si une différence existe, tu peux toujours regarder
    le code IL generé.. je crois de mémoire que dans le cas d'un Convert, il doit
    y avoir un try/catch qui enrobe la conversion... mais c'est de mémoire.. donc
    défaillant potentiellement

    The Monz, Toulouse

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 224
    Par défaut
    d'accord je vais regarder, mais qu'est ce que le "code IL" ?

    je n'ai jamais fait ça..

  6. #6
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    IL = Intermediate Language

    Grosso modo, c'est le code qui sera executé et qui est généré par le compilateur...

    Il faut savoir que le code est le mode pour du vb, c#..

    A titre indicatif, à partir de ce code, des outils gratuits comme Reflector sont
    capables de te faire le Code VB ou C# ou autres.. (c un outil pratique
    pour qui veut convertir du C# en VB.net... sans le faire manuellement...)

    Le code IL peut etre vu en utilisant l'outil "ILDASM.EXE" de M$... gratuit lui aussi.

    Regarde dans le msdn, tu y trouveras ton bonheur et des explications

    The Monz, Toulouse

Discussions similaires

  1. Différence entre le compte sys et system
    Par shayro19 dans le forum Administration
    Réponses: 2
    Dernier message: 04/03/2015, 17h12
  2. Les différences entre les cast c++ et c
    Par NoIdea dans le forum Débuter
    Réponses: 13
    Dernier message: 01/07/2010, 10h18
  3. Différence entre source donne utilisateur et systeme
    Par rec82 dans le forum Bases de données
    Réponses: 3
    Dernier message: 14/01/2009, 12h52
  4. [DBA]Différence entre : SYSTEM, INTERNAL, SYSDBA
    Par Isabella dans le forum Oracle
    Réponses: 10
    Dernier message: 15/02/2006, 13h49
  5. Réponses: 5
    Dernier message: 03/05/2005, 18h22

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