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 :

Syntaxe C# Type?


Sujet :

C#

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    Par défaut Syntaxe C# Type?
    Bonjour,

    Que veux dire la syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public decimal? Montant {get; set;}
    ?

    Surtout le ?

    Merci d'avance,
    Clm

  2. #2
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Il s'agit d'une déclaration de propriété (Montant) dont le type est un decimal nullable.
    Le "?" derrière un type permet d'indiquer que ce type est nullable, accepte la valeur nulle.

  3. #3
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Par défaut
    Bonjour,

    Et c'est une auto-propriété, c'est-à-dire qu'il n'est pas nécessaire de déclarer un membre stockant la valeur de la propriété.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    Par défaut
    Merci les gars !

  5. #5
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    la précision d'ostenhard est importante
    Depuis la version 3.0 du framework, tu n'as plus besoin de déclarer de variables privées pour les déclarations de propriétés "simples" (lire, qui ne contiennent pas de logique métier).

    Un peu de lecture ici.

  6. #6
    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 calagan99 Voir le message
    Il s'agit d'une déclaration de propriété (Montant) dont le type est un decimal nullable.
    Le "?" derrière un type permet d'indiquer que ce type est nullable, accepte la valeur nulle.
    J'ajouterai que la syntaxe decimal? est en fait un raccourci pour Nullable<decimal>.

    Pour tester si la propriété est nulle, tu peux faire comme avec un type référence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (Montant != null)
    {
        ...
    }
    Ou encore utiliser la propriété HasValue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (Montant.HasValue)
    {
        ...
    }
    Et pour obtenir la valeur non nullable, on utilise la propriété Value :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    decimal m = Montant.Value; // attention, exception si Montant.HasValue == false

  7. #7
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par calagan99 Voir le message
    la précision d'ostenhard est importante
    Depuis la version 3.0 du framework, tu n'as plus besoin de déclarer de variables privées pour les déclarations de propriétés "simples"
    Petite correction : ce n'est pas la 3.0 du framework, mais c'est depuis la version 3.0 de C#, qui correspond à la verson 3.5 du framework (la 3.0 du framework fonctionne avec la version 2.0 de C#, et est utilisable avec VS 2005, ce qui n'est pas le cas de C# 3.0 et ne permet pas l'usage des propriétes auto, puisque c'est une question de compilateur, pas de framework).

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

Discussions similaires

  1. Syntaxe de type <mov bl, es:[17h]>
    Par Voldemort09 dans le forum x86 16-bits
    Réponses: 3
    Dernier message: 28/08/2008, 13h39
  2. Variable pour un syntaxe du type "me.txt_champ"
    Par sakia dans le forum VBA Access
    Réponses: 2
    Dernier message: 04/08/2007, 11h01
  3. Syntaxe C# type retourné avec "?"
    Par Ishida dans le forum C#
    Réponses: 4
    Dernier message: 19/05/2007, 19h03
  4. Syntaxe content-type pour un SWF
    Par klerdesign dans le forum Flash
    Réponses: 2
    Dernier message: 18/05/2006, 10h11

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