2011-06-24 5 views
1

Ok, j'ai demandé ce question et j'ai obtenu un excellent exemple de code comme réponse. Le code fonctionne mais je ne comprends pas la signification du code. Quelqu'un peut-il pointer la direction pour moi pour une lecture plus approfondie afin de comprendre le code. Voici le code qui récupère le bouton radio coché dans une zone de groupe:Quelle est la signification de ce code?

Dim rButton As RadioButton = GroupBox1.Controls _ 
    .OfType(Of RadioButton)() _ 
    .Where(Function(r) r.Checked = True) _ 
    .FirstOrDefault() 

Ok, les pièces que je ne comprends pas sont .OfType, .Where, .FirsrOrDefault

MISE À JOUR:

Merci les gars, ces choses sont LINQ

+0

Dans votre discussion précédente, vous avez demandé comment remplacer un tas de si et il semble que vous avez sélectionné. Mais quel est le point? Maintenant, vous savez lequel est vérifié, d'une manière différente, et maintenant ... – dbasnett

+0

@dbasnett: Ma question précédente est d'explorer s'il y a une façon plus intelligente de vérifier quel bouton radio est en cours de vérification.Et j'ai essayé d'utiliser l'exemple de code donné par le répondeur. Cela fonctionne et merci beaucoup. Mais je ne comprends pas le code. Plus précisément, je ne sais même pas ce qu'est '.OfType' et d'où il vient. Donc, j'ai commencé cette question. Quelque chose ne va pas de ma part? – Predator

+0

Non. Mon point était maintenant que vous savez quel bouton est vérifié qu'allez-vous faire. – dbasnett

Répondre

6

Ce code sélectionne le premier bouton radio coché dans un groupe de boutons. Promenons dans le code:

  1. Dim rButton As RadioButton = GroupBox1.Controls _

    Sélectionnez le groupe de formulaire contrôle

  2. OfType(Of RadioButton)() _

    Mais seuls les boutons radio de ce groupe

  3. Where(Function(r) r.Checked = True) _

    qui sont déjà vérifiés

  4. .FirstOrDefault()

    Retour la première ou NULL si aucune sont vérifiés.

+0

Ok, je choisis cette réponse parce qu'elle a une explication détaillée. J'ai upvoted toutes les autres réponses. Merci beaucoup! – Predator

7

Le code lit presque exactement ce qu'il fait: des contrôles sur GroupBox1 qui sont de type RadioButton, prenez ceux où le bouton radio est coché, puis prenez le premier (ou null s'il n'y en a pas).

En anglais clair, parmi tous les boutons radio de la boîte de groupe, recherchez le premier coché, ou renvoyez null s'il n'y en a pas. Les méthodes viennent de LINQ.

+0

Je veux dire quel est le nom/tech de les choses suivantes: '.OfType, .Where, .FirsrOrDefault'? Je ne sais rien de ces choses et je souhaite l'apprendre. Pouvez-vous me montrer où en savoir plus? – Predator

+0

@Predator: Ce sont des méthodes LINQ. LINQ est ce que vous voulez lire. – jason

+0

Ok, je comprends :) – Predator

3

Ceci est l'API LINQ pour VB. Fondamentalement, chacune des méthodes que vous mentionnez sont des sélecteurs et retournent les résultats d'une requête. Consultez this page pour une tonne d'exemples:

2

En fait, son en passant par les contrôles de GroupBox1 qui sont OfType RadioButton et ils sont contrôlés, en saisissant la Première résultat ou par défaut/Aucune si il n'y a pas de résultats

Questions connexes