locked
Quelle est la différence entre (int), Int32.Parse et Convert.ToInt32 RRS feed

  • Discussion générale

  • (int) est une conversion explicite, ce qu’on appelle un cast.

    Les variables source et destination doivent être compatibles, et il y a un risque de perte d’information si le type de la variable de destination est d'une taille inférieure à (ou est une classe de base de) la variable source.

     

    Pour obtenir la liste des conversions numériques explicites qui sont autorisés, reportez-vous à la section Tableau des conversions numériques explicites

     

    La méthode Int32.Parse convertit uniquement chaînes en nombres entiers.

     

    La classe Convert facilite la conversion entre tous les types de base.

     

    La méthode Convert.ToInt32 (String, IFormatProvider) appelle la méthode Int32.Parse. Toutefois, si une chaîne vide est passée à Convert il renvoie 0, par rapport à Int32.Parse qui lève ArgumentNullException.

     

    Convert.ToInt32 lancera une exception OverflowException lorsque la valeur de la source est supérieure à Int32.MaxValue ou inférieure à Int32.MinValue, par rapport à (int) qui ne lancera aucune exception.

     

    Convert.ToInt32 lancera une exception FormatException lorsque la valeur de la source n’est pas un nombre entier. Par exemple :

    str s =  "10.2"

    int i = Convert.ToInt32(str) // FormatException

     

    Pour plus d'informations sur cast et conversions de type, vous pouvez consulter ces documents :

    Cast et conversions de types (Guide de programmation C#)

    http://msdn.microsoft.com/fr-fr/library/ms173105.aspx

     

    Conversions de type en Visual Basic

    http://msdn.microsoft.com/fr-fr/library/hcb26cc8(VS.80).aspx



    Pour plusieurs questions sur la bibliothèque de classes .NET, visitez Foire aux Questions  -  Bibliothèque de classes .NET Framework


    Alex Petrescu - MSFT
    lundi 22 février 2010 13:23