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 :

déclaration variable avec ? [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 117
    Par défaut déclaration variable avec ?
    Bonjour

    Quelle est la différence entre cette déclaration de variable
    et celle-ci:

    Merci ?

  2. #2
    Modérateur
    Avatar de toopac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 940
    Par défaut
    Le '?' rend le type nullable. Ainsi dd peut être null.
    Plus d'infos ici et

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 117
    Par défaut
    Merci toopac,

    J'essaie de mettre à jour un champ de BDD avec une variable qui peut être null mais en fait, c'est plutot DBNull qu'il faut utilisé.

    Je n'arrive pas en une seule ligne à le faire, du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DateTime ResultDate;
    row["DAT_NAI"] = (DateTime.TryParse(msk_DateNaiss.Text, out ResultDate) ? msk_DateNaiss.Text : DBNull.Value)

  4. #4
    Membre expérimenté Avatar de brachior
    Homme Profil pro
    Doctorant
    Inscrit en
    Mai 2011
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2011
    Messages : 190
    Par défaut
    A savoir que dans ton exemple, il n'y a aucune différence car DateTime est déjà du type Nullable ...
    Cette syntaxe sert essentiellement pour les types "primitifs" (int, double, ...) et les structures.

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 117
    Par défaut
    A priori, Brachior, Datetime n'est pas nullable car quand je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateTime ResultDate = null;
    j'obtiens l'erreur de compil :
    Impossible de convertir null en 'System.DateTime', car il s'agit d'un type valeur qui n'autorise pas les valeurs null

  6. #6
    Modérateur
    Avatar de toopac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 940
    Par défaut
    DateTime n'est effectivement pas nullable.

    Je ne vois pas ton problème du coup. Tu cherches seulement à faire le tout en une seule ligne ?

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 117
    Par défaut
    oui c'est bien cà toopac, en une seule ligne

  8. #8
    Membre expérimenté Avatar de brachior
    Homme Profil pro
    Doctorant
    Inscrit en
    Mai 2011
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2011
    Messages : 190
    Par défaut
    Citation Envoyé par dvdavid Voir le message
    A priori, Brachior, Datetime n'est pas nullable
    En effet, mea culpa ^^
    DateTime est en effet une structure ^^

  9. #9
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Citation Envoyé par brachior Voir le message
    A savoir que dans ton exemple, il n'y a aucune différence car DateTime est déjà du type Nullable ...
    Cette syntaxe sert essentiellement pour les types "primitifs" (int, double, ...) et les structures.
    Les types primitifs (int, double, etc.) SONT des structures.
    DateTime est également une structure.

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

Discussions similaires

  1. Déclaration variable avec []
    Par BernardBouree dans le forum VB.NET
    Réponses: 4
    Dernier message: 29/09/2012, 01h30
  2. Déclaration de variable avec valeurs multiples regroupées
    Par Dr_No dans le forum MS SQL Server
    Réponses: 20
    Dernier message: 06/05/2011, 13h57
  3. Déclaration d'un variable avec 2 valeurs
    Par webfranc dans le forum SQL
    Réponses: 3
    Dernier message: 15/05/2008, 15h52
  4. Réponses: 2
    Dernier message: 15/11/2007, 15h15
  5. Réponses: 9
    Dernier message: 15/05/2007, 12h41

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