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 :

TryParse, rien compris


Sujet :

C#

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 6
    Points : 0
    Points
    0
    Par défaut TryParse, rien compris
    Bonjour,

    Je suis débutant, quelqu'un pourrait m'expliquer à quoi sert TryParse, je ne comprends rien du tout . Ou si vous avez des liens ou des cours de C#, je suis preneur

    Merci beaucoup à vous

    Nico

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 025
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 025
    Points : 5 459
    Points
    5 459
    Par défaut
    Un TryParse tente de convertir une string vers un objet.
    Si par exemple tu essayes de convertir la chaine "g5" vers un entier ça n'a pas de sens et la méthode Parse va te faire une exception.
    Comme tu n'es pas forcément sûr que c'est possible, la méthode TryParse encapsule toute la gestion dans les cas où cette conversion n'est pas possible.

    L'utilisation est simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    int valeur;
    string valeurPossible="5";
    string valeurImpossible="d5";
    if(int.TryParse(valeurPossible, out valeur))
    {
    // ici ca passe, valeur = 5
    }
    //valeur toujours à 5
    if(int.TryParse(valeurImpossible, out valeur))
    {
    // ici ca passe pas... valeur = 0 
    }
    //valeur 0
    Si c'est le "out" qui te gène il s'agit d'un moyen d'avoir plusieurs sorties pour une fonction. Ici tu veux à la fois savoir si c'est possible (donc un bool) et à la fois obtenir la valeur (utilisation d'un parametre "out").

  3. #3
    Membre chevronné
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 639
    Points : 2 148
    Points
    2 148
    Par défaut
    Citation Envoyé par Nicool54 Voir le message
    Ou si vous avez des liens ou des cours de C#, je suis preneur
    Pas besoin de chercher loin , ici même il y a des cours de bonne qualité :

    Cours et tutoriels pour apprendre C# :

    http://tahe.developpez.com/dotnet/csharp/

    Sources pour satisfaire la curiosité :

    http://dotnet.developpez.com/telecha...odes-sources-C

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 6
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par micka132 Voir le message
    Un TryParse tente de convertir une string vers un objet.
    Si par exemple tu essayes de convertir la chaine "g5" vers un entier ça n'a pas de sens et la méthode Parse va te faire une exception.
    Comme tu n'es pas forcément sûr que c'est possible, la méthode TryParse encapsule toute la gestion dans les cas où cette conversion n'est pas possible.

    L'utilisation est simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    int valeur;
    string valeurPossible="5";
    string valeurImpossible="d5";
    if(int.TryParse(valeurPossible, out valeur))
    {
    // ici ca passe, valeur = 5
    }
    //valeur toujours à 5
    if(int.TryParse(valeurImpossible, out valeur))
    {
    // ici ca passe pas... valeur = 0 
    }
    //valeur 0
    Si c'est le "out" qui te gène il s'agit d'un moyen d'avoir plusieurs sorties pour une fonction. Ici tu veux à la fois savoir si c'est possible (donc un bool) et à la fois obtenir la valeur (utilisation d'un parametre "out").
    C'est à dire que le out te permet de stocker la valeur contenu dans la variable valeurPossible dans la variable valeur? Est-ce ça?
    Et si 5 est un integer (un nombre entier), pourquoi avoir affecté le type string à la variable valeurPossible? A quoi ça sert
    Moi je pensais que string était que pour les chaines de caractère

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 6
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par PixelJuice Voir le message
    Pas besoin de chercher loin , ici même il y a des cours de bonne qualité :

    Cours :

    http://tahe.developpez.com/dotnet/csharp/

    Sources pour satisfaire la curiosité :

    http://dotnet.developpez.com/telecha...odes-sources-C
    Merci, c'est super

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par Nicool54 Voir le message
    Et si 5 est un integer (un nombre entier), pourquoi avoir affecté le type string à la variable valeurPossible? A quoi ça sert
    Moi je pensais que string était que pour les chaines de caractère

    le controle textbox permet la saisie de string, mais parfois l'utilisateur peut y saisir un nombre ou une date
    ou si ca vient d'un fichier texte ...

    dans ces cas on a un string, et si on le converti en nombre ca va provoquer une erreur si le string ne contient pas un nombre (genre si l'utilisateur se trompe lors de la saisie)
    avec tryparse on détecte que ce n'est pas bon et s'il retourne false on dit à l'utilisateur que la saisie est incorrecte et on ne poursuit pas le traitement
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 6
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    le controle textbox permet la saisie de string, mais parfois l'utilisateur peut y saisir un nombre ou une date
    ou si ca vient d'un fichier texte ...

    dans ces cas on a un string, et si on le converti en nombre ca va provoquer une erreur si le string ne contient pas un nombre (genre si l'utilisateur se trompe lors de la saisie)
    avec tryparse on détecte que ce n'est pas bon et s'il retourne false on dit à l'utilisateur que la saisie est incorrecte et on ne poursuit pas le traitement
    Donc en gros, c'est un peu comme un test sur le texte entré dans textbox pour savoir s'il est conforme à nos exigences, c'est à dire pour savoir si c'est une chaine de caractère et non pas un nombre. Car que ferait le programme si on lui envoyait un nombre à la place d'un texte ?!

    Aurais tu des exemples de code d'utilisation de textbox (je pense en particulier l'utilisation de certaines de ses propriétés)

    Est-ce que textbox est un objet?

    Merci encore pour vos réponses

  8. #8
    Expert confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 025
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 025
    Points : 5 459
    Points
    5 459
    Par défaut
    Citation Envoyé par Nicool54 Voir le message
    Est-ce que textbox est un objet?
    Une TextBox en Winform ou WPF est un objet graphique qui permet de récupérer une saisie de l'utilisateur sous forme de string.
    Citation Envoyé par Nicool54 Voir le message
    Donc en gros, c'est un peu comme un test sur le texte entré dans textbox pour savoir s'il est conforme à nos exigences, c'est à dire pour savoir si c'est une chaine de caractère et non pas un nombre. Car que ferait le programme si on lui envoyait un nombre à la place d'un texte ?!
    Quelque soit ce que tape l'utilisateur, la valeur est stockée dans une propriété de type string ( textbox.Text ).
    TryParse n'est pas forcément lié à une interface utilisateur. Comme le dit Pol63 tu peux tout à fait avoir une entré depuis un fichier texte.
    Tu peux effectivement te servir de TryParse comme un test pour savoir si la saisie est un nombre valide, mais la saisie reste un string. Avec l'utilisation de TryParse, si elle réussit tu auras deux valeurs: une en string et une en int.

Discussions similaires

  1. [XSLT] XML débutant : Rien compris !
    Par popy67 dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 23/05/2008, 16h41
  2. Rien compris, OpenGL et Z axis !?!
    Par _ZoD_ dans le forum OpenGL
    Réponses: 7
    Dernier message: 02/10/2007, 15h40
  3. congés payés rien compris
    Par ti'lou dans le forum Congés
    Réponses: 13
    Dernier message: 28/02/2007, 19h06
  4. [Noob] Mon premier programme : rien compris
    Par uNd3r² dans le forum Dev-C++
    Réponses: 5
    Dernier message: 19/12/2006, 21h23

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