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

Windows Forms Discussion :

? dans un type


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 530
    Par défaut ? dans un type
    Bonjour,

    Pour générer une classe utilisable avec NHibernate, j'ai utilisé un outil appelé NConstruct.

    Dans la classe de base d'un de mes objets, cet outil m'a généré la ligne suivante:

    private DateTime? _Birth_date;

    Quand je veux assigner une valeur DateTime à _Birth_Date, le compilo me dit qu'il faut faire un cast parce qu'il ne peut assigner un DateTime à un DateTime? . Ok, je veux bien, mais ce ? , il a un sens précis pour C# ou bien NConstruct a t-il généré un nouveau type en utilisant le ? comme n'importe quel autre caractère alphanumérique ?

    Papy

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 547
    Par défaut
    Salut,

    ce n'est pas plutot dans l'autre sens, que le compilo emet une erreur (assigné un Datetime? à un Datetime simple) ?

    Pour le ?, c'est un alias qu'à choisi microsoft pour representer les Nullables<T>. Un nullable etant un wrapper d'un type valeur qui peut, potentiellement, être nul.

  3. #3
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 530
    Par défaut
    ce n'est pas plutot dans l'autre sens, que le compilo emet une erreur (assigné un Datetime? à un Datetime simple) ?
    Exact !

    Pour le ?, c'est un alias qu'à choisi microsoft pour representer les Nullables<T>. Un nullable etant un wrapper d'un type valeur qui peut, potentiellement, être nul.
    Ok ! Donc, je dois bien laisser le "?" sous peine de problèmes ultérieurs ?

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 547
    Par défaut
    Pour le fait de garder ou pas le ?, j'avouerai que je ne sais pas trop n'utilisant pas NHibernate, mais si il t'a generé cela, c'est surement du au fait que le champ en question peut potentiellement etre nul (ce qui n'aurait pas etait facile à gérer avec un Datetime classique). Il faut juste savoir que l'emploi des nullable implique un test supplementaire pour savoir si le nullable en question a une valeur (HasValue, et Value pour recuperer la valeur si tel est le cas).

    Attention cependant, un nullable jete des exceptions si il est casté (explicite) ou que tu veux recuperer sa valeur alors qu'il n'en a pas.

  5. #5
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 530
    Par défaut
    Citation Envoyé par SirJulio Voir le message
    ..., mais si il t'a generé cela, c'est surement du au fait que le champ en question peut potentiellement etre nul (ce qui n'aurait pas etait facile à gérer avec un Datetime classique).
    Effectivement, le champ peut être null tant qu'il n'a pas été renseigné. Je n'aime pas utiliser les null dans les bases de données mais là j'ai pas le choix.

    Merci pour tes conseils.

  6. #6
    Membre émérite
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Par défaut
    La classe Nullable<T> a principalement été créé par rapport aux bases de données. D'ailleurs LINQ utilise des types nullables...

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

Discussions similaires

  1. Que choisir dans comme type de connection DWL-2000AP+
    Par jean christophe dans le forum Réseau
    Réponses: 3
    Dernier message: 03/11/2005, 18h48
  2. [Interface]Caster dans un type interface ?
    Par Pill_S dans le forum Langage
    Réponses: 7
    Dernier message: 21/10/2005, 13h26
  3. Insertion dans BDD type ACCESS
    Par NeHuS dans le forum ASP
    Réponses: 2
    Dernier message: 20/04/2005, 10h53
  4. style pour le bouton dans input type file
    Par manaboko dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/02/2005, 14h47
  5. [XML] caractères spéciaux dans un type NMTOKEN
    Par norkius dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 08/09/2004, 14h30

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