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 :

Que signifi ceci


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2009
    Messages : 48
    Par défaut Que signifi ceci
    Bonjour à tous,

    J'ai du mal à comprendre cette forme (le ? et les :
    dtCategories.AsEnumerable().Where(o => ((o.IsNull("cat_parent")) ? Guid.Empty : o.Field<Guid>("cat_parent")) == ParentID)

    Quelqu'un peut m'expliquer comment ca marche, svp ?
    Merci.

  2. #2
    Membre confirmé Avatar de thelpi
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 217
    Par défaut
    Salut,

    c'est un opérateur ternaire, l'équivalent d'un si / sinon sur une ligne
    le ? signifie "if" et le : signifie "else"
    tu met la condition à gauche, la valeur si true au milieu et la valeur si false à droite.

  3. #3
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2009
    Messages : 48
    Par défaut
    Merci Thelpi.

    Si j'ai bien compris, ca veut dire :
    Si le champ "cat_parent" est null alors on renvoi Guid.Empty sinon on renvoi la valeur (qui est un guid) du champ "cat_parent" dont le champ "cat_id" est égal à ParentID.

    C'est bien ca ?

  4. #4
    Membre confirmé Avatar de thelpi
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 217
    Par défaut
    oui

  5. #5
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    A utiliser avec parcimonie

    Dans certains cas c'est bien pratique mais l'abus peut rendre un code completement illisible

    J'ai deja vu des code ou un geek s'amusait a imbriquer ses operateurs ternaire. Lui meme ne s'y retrouvait plus

    Des que l'expression devient trop complexe un bon if else est toujours préférable a mon avis !

  6. #6
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2009
    Messages : 48
    Par défaut
    merci beaucoup à vous deux.

    Je demande surtout pour la traduction. Je trouve cette feçon de coder quelque peu "babare". Je suis pour du code facilement déchiffrable par tous.

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

Discussions similaires

  1. Que signifie "Error : Data truncation" ??
    Par BouB dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/05/2005, 16h20
  2. [SQL6]Que signifie ce LEFT ?
    Par guy2004 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 30/01/2005, 19h18
  3. Que signifie Pagesize ?
    Par anthony70 dans le forum Débuter
    Réponses: 3
    Dernier message: 31/08/2004, 13h31
  4. Que signifier $0 et $@
    Par jaabouc dans le forum Linux
    Réponses: 6
    Dernier message: 01/06/2004, 15h17

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