Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

Expression<TDelegate>, classe

Représente une expression lambda fortement typée comme une structure de données sous forme d'arborescence de l'expression. Cette classe ne peut pas être héritée.

Espace de noms :  System.Linq.Expressions
Assembly :  System.Core (dans System.Core.dll)

public sealed class Expression<TDelegate> : LambdaExpression

Paramètres de type

TDelegate

Type du délégué représenté par le Expression<TDelegate>.

Le type Expression<TDelegate> expose les membres suivants.

  NomDescription
Propriété publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreBodyObtient le corps de l'expression lambda. (Hérité de LambdaExpression.)
Propriété publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreCanReduceIndique que le nœud peut être réduit à un nœud plus simple. Si la valeur retournée est true, Reduce() peut être appelé pour produire la forme réduite. (Hérité de Expression.)
Propriété publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreNameObtient le nom de l'expression lambda. (Hérité de LambdaExpression.)
Propriété publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreNodeTypeRetourne le type de nœud de cet objet Expression. (Hérité de LambdaExpression.)
Propriété publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreParametersObtient les paramètres de l'expression lambda. (Hérité de LambdaExpression.)
Propriété publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreReturnTypeObtient le type de retour de l'expression lambda. (Hérité de LambdaExpression.)
Propriété publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreTailCallObtient la valeur qui indique si l'expression lambda doit être compilée avec l'optimisation d'appel tail. (Hérité de LambdaExpression.)
Propriété publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreTypeObtient le type statique de l'expression que ce Expression représente. (Hérité de LambdaExpression.)
Début

  NomDescription
Méthode protégéePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreAcceptDistribue à la méthode de visite spécifique à ce type de nœud. Par exemple, MethodCallExpression appelle VisitMethodCall. (Hérité de Expression.)
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreCompile()Compile l'expression lambda décrite par l'arborescence de l'expression dans le code exécutable et produit un délégué qui représente l'expression lambda.
Méthode publiqueCompile(DebugInfoGenerator)Produit un délégué qui représente l'expression lambda.
Méthode publiqueCompileToMethod(MethodBuilder)Compile le lambda dans une définition de méthode. (Hérité de LambdaExpression.)
Méthode publiqueCompileToMethod(MethodBuilder, DebugInfoGenerator)Compile le lambda dans une définition de méthode, ainsi que des informations de débogage personnalisées. (Hérité de LambdaExpression.)
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreEquals(Object)Détermine si l'objet spécifié est identique à l'objet actuel. (Hérité de Object.)
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreGetHashCodeSert de fonction de hachage par défaut. (Hérité de Object.)
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreGetTypeObtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreReduceRéduit le nœud en une expression plus simple. Si CanReduce retourne la valeur true, cela doit retourner une expression valide. Cette méthode peut retourner un autre nœud qui doit lui-même être réduit. (Hérité de Expression.)
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreReduceAndCheckRéduit le nœud en une expression plus simple. Si CanReduce retourne la valeur true, cela doit retourner une expression valide. Cette méthode peut retourner un autre nœud qui doit lui-même être réduit. (Hérité de Expression.)
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreReduceExtensionsRéduit l'expression à un type de nœud connu (qui n'est pas un nœud Extension) ou retourne simplement l'expression s'il s'agit d'un type déjà connu. (Hérité de Expression.)
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreToStringRetourne une représentation textuelle d'Expression. (Hérité de Expression.)
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreUpdateCrée une expression semblable à celle-ci, mais utilisant les enfants fournis. Si tous les enfants sont identiques, cette expression est retournée.
Méthode protégéePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreVisitChildrenRéduit le nœud puis appelle le délégué visiteur sur l'expression réduite. La méthode lève une exception si le nœud n'est pas réductible. (Hérité de Expression.)
Début

Lorsqu'une expression lambda est assignée à une variable, un champ ou un paramètre dont le type est Expression<TDelegate>, le compilateur émet des instructions pour générer une arborescence de l'expression.

RemarqueRemarque

Une conversion d'une expression lambda en type Expression<D> (Expression(Of D) en Visual Basic) existe si une conversion de l'expression lambda en un délégué de type D existe. La conversion peut cependant échouer, par exemple, si le corps de l'expression lambda est un bloc. Cela signifie que les délégués et les arborescences de l'expression se comportent de manière identique vis-à-vis de la résolution de surcharge.

L'arborescence de l'expression est une représentation de données en mémoire de l'expression lambda. L'arborescence de l'expression rend la structure de l'expression lambda transparente et explicite. Vous pouvez interagir avec les données dans l'arborescence de l'expression tout comme dans n'importe quelle autre structure de données.

La possibilité de traiter les expressions comme des structures de données permet aux API de recevoir du code utilisateur dans un format pouvant faire l'objet d'une inspection, d'une transformation et d'un traitement personnalisés. Par exemple, l'implémentation de l'accès aux données LINQ to SQL utilise cette fonctionnalité pour traduire des arborescences de l'expression en instructions Transact-SQL qui peuvent être évaluées par la base de données.

De nombreux opérateurs de requête standard définis dans la classe Queryable présentent un ou plusieurs paramètres de type Expression<TDelegate>.

Le NodeType d'un Expression<TDelegate> est Lambda.

Utilisez la méthode Lambda<TDelegate>(Expression, IEnumerable<ParameterExpression>) ou Lambda<TDelegate>(Expression, ParameterExpression[]) pour créer un objet Expression<TDelegate>.

L'exemple de code suivant montre comment représenter une expression lambda comme du code exécutable sous forme de délégué et comme des données sous forme d'arborescence de l'expression. Il montre également comment reconvertir l'arborescence de l'expression en code exécutable à l'aide de la méthode Compile.



            // Lambda expression as executable code.
            Func<int, bool> deleg = i => i < 5;
            // Invoke the delegate and display the output.
            Console.WriteLine("deleg(4) = {0}", deleg(4));

            // Lambda expression as data in the form of an expression tree.
            System.Linq.Expressions.Expression<Func<int, bool>> expr = i => i < 5;
            // Compile the expression tree into executable code.
            Func<int, bool> deleg2 = expr.Compile();
            // Invoke the method and print the output.
            Console.WriteLine("deleg2(4) = {0}", deleg2(4));

            /*  This code produces the following output:

                deleg(4) = True
                deleg2(4) = True
            */



.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Bibliothèque de classes portable

Pris en charge dans : Bibliothèque de classes portable

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

.NET pour les applications Windows Phone

Pris en charge dans : Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

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

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft