Predicate, délégué générique (System)

Bibliothèque de classes .NET Framework 
Predicate, délégué générique 

Remarque : ce délégué est nouveau dans le .NET Framework version 2.0.

Représente la méthode qui définit un ensemble de critères et détermine si l'objet spécifié répond à ces critères.

Espace de noms : System
Assembly : mscorlib (dans mscorlib.dll)

SyntaxeSyntaxe


Visual Basic (Déclaration)
Public Delegate Function Predicate(Of T) ( _
    obj As T _
) As Boolean


Visual Basic (Utilisation)
Dim instance As New Predicate(Of T)(AddressOf HandlerMethod)


C#
public delegate bool Predicate<T> (
    T obj
)


C++
generic<typename T>
public delegate bool Predicate (
    T obj
)


J#
J#  prend en charge l'utilisation de types et de méthodes génériques mais pas la déclaration de nouveaux types et de méthodes génériques.


JScript
JScript ne prend pas en charge les types et les méthodes génériques.

Paramètres de type

 
T

Type de l'objet à comparer.

Paramètres

obj

Objet à comparer par rapport aux critères définis dans la méthode représentée par ce délégué.

Valeur de retour

true si obj correspond aux critères définis dans la méthode représentée par ce délégué ; sinon, false.
NotesNotes

Ce délégué est utilisé par plusieurs méthodes des classes Array et List pour rechercher des éléments dans la collection.

ExempleExemple

L'exemple de code suivant utilise un délégué Predicate avec la méthode Array.Find pour effectuer une recherche dans un tableau de structures Point. La méthode que le délégué représente, ProductGT10, retourne true si le produit des champs X et Y est supérieur à 100 000. La méthode Find appelle le délégué pour chaque élément du tableau, en s'arrêtant au premier point qui remplit la condition de test.

RemarqueRemarque

Les utilisateurs de Visual Basic et de C# n'ont pas besoin de créer le délégué explicitement ou de spécifier l'argument de type de la méthode générique. Les compilateurs déterminent les types nécessaires à partir des arguments de méthode que vous fournissez.



Visual Basic
Imports System
Imports System.Drawing

Public Class Example

    Public Shared Sub Main()

        ' Create an array of five Point structures.
        Dim points() As Point = { new Point(100, 200), _
            new Point(150, 250), new Point(250, 375), _
            new Point(275, 395), new Point(295, 450) }

        ' To find the first Point structure for which X times Y 
        ' is greater than 100000, pass the array and a delegate 
        ' that represents the ProductGT10 method to the Shared
        ' Find method of the Array class.
        Dim first As Point = Array.Find(points, _
            AddressOf ProductGT10)

        ' Note that you do not need to create the delegate 
        ' explicitly, or to specify the type parameter of the 
        ' generic method, because the compiler has enough
        ' context to determine that information for you.

        ' Display the first structure found.
        Console.WriteLine("Found: X = {0}, Y = {1}", _
            first.X, first.Y)
    End Sub

    ' This method implements the test condition for the Find
    ' method.
    Private Shared Function ProductGT10(ByVal p As Point) As Boolean
        If p.X * p.Y > 100000 Then
            Return True
        Else
            Return False
        End If
    End Function
End Class

' This code example produces the following output:
'
'Found: X = 275, Y = 395


C#
using System;
using System.Drawing;

public class Example
{
    public static void Main()
    {
        // Create an array of five Point structures.
        Point[] points = { new Point(100, 200), 
            new Point(150, 250), new Point(250, 375), 
            new Point(275, 395), new Point(295, 450) };

        // To find the first Point structure for which X times Y 
        // is greater than 100000, pass the array and a delegate
        // that represents the ProductGT10 method to the Shared 
        // Find method of the Array class. 
        Point first = Array.Find(points, ProductGT10);

        // Note that you do not need to create the delegate 
        // explicitly, or to specify the type parameter of the 
        // generic method, because the C# compiler has enough
        // context to determine that information for you.

        // Display the first structure found.
        Console.WriteLine("Found: X = {0}, Y = {1}", first.X, first.Y);
    }

    // This method implements the test condition for the Find
    // method.
    private static bool ProductGT10(Point p)
    {
        if (p.X * p.Y > 100000)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}

/* This code example produces the following output:

Found: X = 275, Y = 395
 */
Plates-formesPlates-formes

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

Informations de versionInformations de version

.NET Framework

Prise en charge dans : 2.0

.NET Compact Framework

Prise en charge dans : 2.0
Voir aussiVoir aussi

Ces informations proviennent du site de http://msdn2.microsoft.com
Source de cette page : http://msdn2.microsoft.com/fr-fr/library/bfcke1bz.aspx

Réseaux sociaux

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher les interactions avec les réseaux sociaux sur ces pages.

 

Nuage de mots clés

8 mots clés dont 0 définis manuellement (plus d'information...).

Avertissement

Cette page ne possède pas encore de mots clés manuels, ceci est donc un exemple automatique (les niveaux de pertinence sont fictifs, mais les liens sont valables). Pour tester le nuage avec une page qui contient des mots définis manuellement, vous pouvez cliquer ici.

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher le nuage de mots clés.

 

Astuce pour imprimer les couleurs des cellules de tableaux : http://www.gaudry.be/ast-rf-450.html
Aucun commentaire pour cette page

© Ce document issu de l′infobrol est enregistré sous le certificat Cyber PrInterDeposit Digital Numbertection. Enregistrement IDDN n° 5329-5414
Document créé le 30/10/06 04:34, dernière modification le Vendredi 17 Juin 2011, 12:11
Source du document imprimé : http://www.gaudry.be/dotnet-rf-bfcke1bz.html Document affiché 5 fois ce mois de Mai.
St.Gaudry©07.01.02
Outils (masquer)
||
Recherche (afficher)
Recherche :

Utilisateur (masquer)
Navigation (masquer)
Apparence (afficher)
Stats (afficher)
15832 documents
452 astuces.
549 niouzes.
3099 definitions.
447 membres.
8115 messages.

Document genere en :
0,70 seconde

Mises à jour :
Mises à jour du site
Citation (masquer)
La connerie, c'est la décontraction de l'intelligence!

Serge Gainsbourg
 
l'infobrol
Nous sommes le Jeudi 31 Mai 2012, 12:17, toutes les heures sont au format GMT+1.00 Heure, heure d'été (+1)