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 :

Convertion byte? to int?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 193
    Par défaut Convertion byte? to int?
    j'ai une fonction qui retourne un Object de type soit:
    byte
    int
    null

    je veux donc stocker ma valeur dans un int?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int? var  = (int?) MaFonction();
    ca pose aucun problème avec un int et null parcontre il ne peut caster un byte en int?

    La seul façon de s'en sortir c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Object value= MaFonction();[/
    If (value=null) var=null;
    else var= (int) value;
    ou il y a une façon plus élégante via le framework?

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    A mon avis, il serait plus efficace de modifier la methode qui renvoie ces valeurs. En effet, il me parait très étrange qu'une méthode retourne ce type de valeur de manière non déterministe.
    Peux tu nous expliquer ce que fait cette méthode ?
    Il y a probablement un moyen pour corriger le problème à la source.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Membre émérite

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Par défaut
    Comme le dit SaumonAgile (Magnifique pseudo soit-dit en passant ), le type de retour de ta méthode a l'air vraiment spécial. Il faut que tu nous en dise plus la dessus mais renvoyer un type unique (même custom) au lieu d'un object qui peut avoir plusieurs types parait plus adapté (vu que tu veux le downcaster au final)
    Mon blog sur les technos .NET et Agile -> http://blog.developpez.com/maximepalmisano/

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 193
    Par défaut
    Oula difficile d'expliquer

    C'est dû a l'architecture
    En fait j'ai une méthode qui bound le résultat de Select à un objet
    Hors pour ne pas crée un objet ils ont décidé de remplir le même objet pour faire des "statistiques"
    Exemple bidon
    Commande(IdArticle,IdClient,Quantité,Prix) *

    Et donc on peut remplir une Commande avec GetCommande(IdArticle,IdClient) ou via GetStatistique(IdArtible)

    Or Quantité est un short (dans le cas d'un select) mais quand on fait GetStatistique c'est un int (sum(Quantité)

    J'ai résolu le problème en castant dans la rêquete du select le short en int

    mais c'était surtout une simple curiosité

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 193
    Par défaut
    En fait c'est parce qu'avec mon problème je me suis dit que je ne pouvais pas stocker directement un short? dans un int?

    mais c'est le casting qu'il aime pas et non l'assignation
    donc logiquement je ne devrais jamais avoir a faire ce genre de vilain casting tout pas bo

  6. #6
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    As tu essayé en remplaçant le cast par un ?
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  7. #7
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 193
    Par défaut
    C'est ce que j'ai voulu faire au début mais le Convert.ToInt32(null) donne 0
    hors j'avais besoin d'un int?

    mais bon comme je l'ai dit j'aime pas ce que je fais et j'ai résolu le problème en faisant le cast au niveau de la requete qui est plus propre

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

Discussions similaires

  1. Convertion char vers int
    Par barthelv dans le forum C
    Réponses: 8
    Dernier message: 08/10/2011, 21h45
  2. conversion Byte[] vers int
    Par skud dans le forum C#
    Réponses: 5
    Dernier message: 17/05/2007, 12h14
  3. [convertion]String vers int
    Par laclac dans le forum Langage
    Réponses: 4
    Dernier message: 12/04/2007, 10h49
  4. [C#2.0] Convertion Byte[] en float
    Par Biloutor dans le forum Windows Forms
    Réponses: 4
    Dernier message: 01/06/2006, 11h08
  5. [VB.NET] Convert chaine hexa -> int
    Par Tempotpo dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/03/2005, 08h53

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