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 :

Convertir du int en int? [Débutant]


Sujet :

C#

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2005
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 40
    Points : 23
    Points
    23
    Par défaut Convertir du int en int?
    Bonjour,

    Étant débutant dans la programmation, je travaille actuellement en C# et un problème mais apparu.
    Dans mon programme, je dois aller chercher une procédure Progress par utilisation de WebService où les paramètres sont définis en "nullable.

    Je dois donc, lors de l'appel de cette méthode, déclarer des variables nullables, jusque là tout va bien, cependant je dois ensuite assigner une valeur nullable à une valeur non nullable et c'est la que des explications sont nécessaires, voici mon exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    bool? manger = true;
    int? respirer =0;
    int vivre =0;
     
    Methode_progress(out manger, out respirer, out vivre);
    vivre = vivre.Lenght - respirer);   //Cela m'affiche une erreur car il est impossible de convertir du int en int?
     
    //Je peux faire comme cela
    boire = vivre?? -1;
    Je ne comprend pas pourquoi on dois mettre -1, le "vivre??" permet de faire passer la variable nullable en non nullable je pense, mais je ne comprend pas l'intérêt du -1.

    Pouvez-vous m'aider à ce sujet svp et est-ce la seule solution pour convertir du nullable en non nullable?
    N'y a-t-il pas un autre moyen plus simple me permettant d'appeler les paramètres de ma méthodes progress en entier (int) directement?

    Merci d'avance de vos réponses.

    Cordialement.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Une variable de type int? n'a pas forcément de valeur, alors qu'une variable de type int en a toujours une. Donc dans le cas où le int? n'a pas de valeur, il faut bien mettre quelque chose dans le int... il faut donc choisir une valeur "par défaut". C'est le rôle du -1 dans ton code. vivre ?? -1 signifie "la valeur de vivre si elle existe, sinon -1. Ce n'est pas une soustraction.

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2005
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 40
    Points : 23
    Points
    23
    Par défaut Merci
    Merci pour cette réponse très explicite.

    Cordialement

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

Discussions similaires

  1. Transformer (int année, int mois, int jour) en millisecondes
    Par Logic_613 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 24/04/2012, 11h08
  2. [(cast)] convertir un char en int...
    Par APoLLoN1234 dans le forum C++
    Réponses: 12
    Dernier message: 15/03/2006, 23h15
  3. convertir un char en int / et prob d'espace
    Par yanchasp dans le forum C++
    Réponses: 20
    Dernier message: 07/02/2006, 19h17
  4. Convertir un void* en int ...?
    Par alex6891 dans le forum C++
    Réponses: 15
    Dernier message: 15/11/2005, 22h43
  5. [Conversion]Convertir un char[] en int
    Par ThanosT dans le forum Général Java
    Réponses: 10
    Dernier message: 11/11/2005, 12h23

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