Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fonction anonyme en C#

Sujet résolu
    15 septembre 2020 à 23:07:59

    Bonjour,
    Ce que je comprends c'est que je récupère le premier champs id d'une institution qui sera de type integer, si mon bouton pretee ou empruntee est coché mais tout ça reste un peu flou. Est-ce que quelqu'un pourrait m'expliquer davantage la fonction anonyme dans ce cas d'application ?
    int? idInstitution = !string.IsNullOrEmpty(CBX_INS.SelectedItem?.ToString()) && (RB_PRETEE.Checked || RB_EMPRUNTEE.Checked)
                    ? _institutions.First(x => x.Nom == CBX_INS.SelectedItem.ToString()).Id
                    : new int?();
    Merci d'avance

    -
    Edité par fj411! 9009!3 17 septembre 2020 à 0:37:11

    • Partager sur Facebook
    • Partager sur Twitter
      16 septembre 2020 à 9:25:24

      Bonjour,

      Merci de colorer votre code à l'aide du bouton Code

      Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Code de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: vb;">Votre code ici</pre>.

      Manque de Politesse

      Votre message ne comporte pas ou peu de formules de politesse (« Bonjour », « Merci », « Au revoir », etc.). Les règles du site exigent que chaque nouveau message comporte un minimum de politesse. Après tout, les gens qui répondent le font gratuitement, sur leur temps libre. Ils méritent bien un minimum de considération, n'est-ce pas ?

      • Partager sur Facebook
      • Partager sur Twitter

      Pas d'aide concernant le code par MP, le forum est là pour ça :)

        16 septembre 2020 à 9:57:36

        Salut,

        Pour la prochaine fois, utilise les balises de codes (au dessus de l'éditeur de texte), ca permets une meilleur visibilité.

        int? idInstitution = !string.IsNullOrEmpty(CBX_INS.SelectedItem?.ToString()) && (RB_PRETEE.Checked || RB_EMPRUNTEE.Checked)
                        ? _institutions.First(x => x.Nom == CBX_INS.SelectedItem.ToString()).Id
                        : new int?();


        Il s'agit d'une ternaire (l'opérateur ternaire est ?)

        De manière générale, une ternaire fonctionne ainsi :

        int a = (condition) ? "valeurSiConditionVrai" : "valeurSiconditionFausse";

        Donc, dans ton bout de code, ta condition est 

        !string.IsNullOrEmpty(CBX_INS.SelectedItem?.ToString()) && (RB_PRETEE.Checked || RB_EMPRUNTEE.Checked) 

        En francais, cela renvoie vrai si ton utilisateur a (sélectionner un item dans ta combobox CBX_INS) et (que un des deux radio boutons RB_PRETEE ou RB_EMPRUNTEE est coché)

        La valeur que tu renvoies lorsque c'est vrai est 

         _institutions.First(x => x.Nom == CBX_INS.SelectedItem.ToString()).Id

        Supposant que _institutions est un IEnumerable<T>, cela retourne l'identifiant de la première institution de _institutions dont l'attribut "Nom" est égal à l'élément selectionné dans CBX_INS.

        La valeur que tu renvoies lorsque c'est faux est 

         new int?()

        Il s'agit simplement d'un nouvel objet int nullable (qui peut prend la valeur nulle).

        En gros, lorsque ton utilisateur a sélectionné un item dans CBX_INS et coché RB_PRETEE ou RB_EMPRUNTEE, tu retournes l'identifiant de l'institution sélectionné, sinon, tu renvoies un nouveau int?.

        Petit conseil par rapport à ta combobox, je te conseille de regarder les notions de "DisplayMember" et "ValueMember" accompagné d'une DataSource sur une combobox. Ca te permettra de faire du code un peu plus propre que 

        !string.IsNullOrEmpty(CBX_INS.SelectedItem?.ToString())

        En espérant t'avoir aidé




        • Partager sur Facebook
        • Partager sur Twitter
          17 septembre 2020 à 0:32:50

          earp91 a écrit:

          Salut,

          Pour la prochaine fois, utilise les balises de codes (au dessus de l'éditeur de texte), ca permets une meilleur visibilité.

          int? idInstitution = !string.IsNullOrEmpty(CBX_INS.SelectedItem?.ToString()) && (RB_PRETEE.Checked || RB_EMPRUNTEE.Checked)
                          ? _institutions.First(x => x.Nom == CBX_INS.SelectedItem.ToString()).Id
                          : new int?();


          Il s'agit d'une ternaire (l'opérateur ternaire est ?)

          De manière générale, une ternaire fonctionne ainsi :

          int a = (condition) ? "valeurSiConditionVrai" : "valeurSiconditionFausse";

          Donc, dans ton bout de code, ta condition est 

          !string.IsNullOrEmpty(CBX_INS.SelectedItem?.ToString()) && (RB_PRETEE.Checked || RB_EMPRUNTEE.Checked) 

          En francais, cela renvoie vrai si ton utilisateur a (sélectionner un item dans ta combobox CBX_INS) et (que un des deux radio boutons RB_PRETEE ou RB_EMPRUNTEE est coché)

          La valeur que tu renvoies lorsque c'est vrai est 

           _institutions.First(x => x.Nom == CBX_INS.SelectedItem.ToString()).Id

          Supposant que _institutions est un IEnumerable<T>, cela retourne l'identifiant de la première institution de _institutions dont l'attribut "Nom" est égal à l'élément selectionné dans CBX_INS.

          La valeur que tu renvoies lorsque c'est faux est 

           new int?()

          Il s'agit simplement d'un nouvel objet int nullable (qui peut prend la valeur nulle).

          En gros, lorsque ton utilisateur a sélectionné un item dans CBX_INS et coché RB_PRETEE ou RB_EMPRUNTEE, tu retournes l'identifiant de l'institution sélectionné, sinon, tu renvoies un nouveau int?.

          Petit conseil par rapport à ta combobox, je te conseille de regarder les notions de "DisplayMember" et "ValueMember" accompagné d'une DataSource sur une combobox. Ca te permettra de faire du code un peu plus propre que 

          !string.IsNullOrEmpty(CBX_INS.SelectedItem?.ToString())

          En espérant t'avoir aidé




          Merci beaucoup 

          • Partager sur Facebook
          • Partager sur Twitter

          Fonction anonyme en C#

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown