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

ASP.NET Discussion :

global::System.Nullable et <global::System.DateTime> ?


Sujet :

ASP.NET

  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 501
    Par défaut global::System.Nullable et <global::System.DateTime> ?
    Bonjour,

    Je dois passer a une fonction un parametre qui est declare de cette facon :
    global::System.Nullable<global::System.DateTime>

    La valeur provient d'un string, je pensais donc faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (CreatedDateTextBox.Text == String.Empty) ? null : DateTime.ParseExact(CreatedDateTextBox.Text, "MM/dd/yyyy", null)
    au moment d'appeler la fonction mais ca ne fonctionne pas...

    Comment faire svp ?

    Merci
    A+

  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
    Par défaut
    quand tu utilises l'opérateur ternaire (condition ? valeurSiVrai : valeurSiFaux), il faut que les 2 valeurs soient de même type. Or un DateTime est un type valeur (non null), donc null ne peut pas être considéré comme étant du même type. Il faut donc que tu castes une des 2 valeurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    String.IsNullOrEmpty(CreatedDateTextBox.Text) ? (DateTime?)null : DateTime.ParseExact(CreatedDateTextBox.Text, "MM/dd/yyyy", null)
     
    // ou
     
    String.IsNullOrEmpty(CreatedDateTextBox.Text) ? null : (DateTime?)DateTime.ParseExact(CreatedDateTextBox.Text, "MM/dd/yyyy", null)
    Dans le premier cas, la première valeur est clairement de type Nullable<DateTime> (DateTime? est un raccourci pour Nullable<DateTime>), et la 2e valeur, de type DateTime, est implicitement convertible en Nullable<DateTime>

    Dans le 2e cas, la 2e valeur est de type Nullable<DateTime> à cause du cast, et null est une valeur valide pour un Nullable<DateTime>

  3. #3
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 501
    Par défaut
    merci pour l'eclaircissement

    Par contre, pour renvoyer un string ou un null, je n'arrive pas... string? ne fonctionne pas ?

  4. #4
    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
    Par défaut
    Citation Envoyé par italiasky Voir le message
    Par contre, pour renvoyer un string ou un null, je n'arrive pas... string? ne fonctionne pas ?
    String est un type référence, pas un type valeur. Donc il peut déjà être null, et Nullable<string> n'a pas de sens.

  5. #5
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 501
    Par défaut
    ah oui en effet

    Merci

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

Discussions similaires

  1. DataSet ne prend pas en charge System.Nullable<>
    Par Alexandre le Grand dans le forum Linq
    Réponses: 2
    Dernier message: 19/02/2015, 21h26
  2. DataSet ne prend pas en charge System.Nullable
    Par gargouilleBL dans le forum Linq
    Réponses: 6
    Dernier message: 04/11/2009, 09h32
  3. Global.asax mais pas de Global.asax.cs ?!
    Par David_CMVI dans le forum ASP.NET
    Réponses: 1
    Dernier message: 03/05/2007, 09h12
  4. Réponses: 10
    Dernier message: 21/12/2006, 10h55
  5. Réponses: 7
    Dernier message: 17/09/2006, 10h42

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