Expression.PropertyOrField(Expression, String) Méthode

Définition

Crée un MemberExpression qui représente l'accès à une propriété ou un champ.

public:
 static System::Linq::Expressions::MemberExpression ^ PropertyOrField(System::Linq::Expressions::Expression ^ expression, System::String ^ propertyOrFieldName);
public static System.Linq.Expressions.MemberExpression PropertyOrField (System.Linq.Expressions.Expression expression, string propertyOrFieldName);
static member PropertyOrField : System.Linq.Expressions.Expression * string -> System.Linq.Expressions.MemberExpression
Public Shared Function PropertyOrField (expression As Expression, propertyOrFieldName As String) As MemberExpression

Paramètres

expression
Expression

Expression dont Type contient une propriété ou un champ nommé propertyOrFieldName.

propertyOrFieldName
String

Nom d'une propriété ou d'un champ auquel accéder.

Retours

MemberExpression

MemberExpression dont la propriété NodeType est égale à MemberAccess, la propriété Expression est égale à expression, et la propriété Member est égale à PropertyInfo ou à FieldInfo qui représente la propriété ou le champ désigné par propertyOrFieldName.

Exceptions

expression ou propertyOrFieldName est null.

Aucune propriété ou aucun champ nommé propertyOrFieldName n'est défini dans expression.Type ou ses types de base.

Exemples

L’exemple suivant montre comment créer une expression qui représente l’accès à une propriété ou à un champ.

// Add the following directive to your file:
// using System.Linq.Expressions;

class TestClass
{
    public int sample { get; set; }
}

static void TestPropertyOrField()
{
    TestClass obj = new TestClass();
    obj.sample = 40;

    // This expression represents accessing a property or field.
    // For static properties or fields, the first parameter must be null.
    Expression memberExpr = Expression.PropertyOrField(
        Expression.Constant(obj),
        "sample"
    );

    // The following statement first creates an expression tree,
    // then compiles it, and then runs it.
    Console.WriteLine(Expression.Lambda<Func<int>>(memberExpr).Compile()());
}

// This code example produces the following output:
//
// 40
' Add the following directive to your file:
' Imports System.Linq.Expressions  

Class TestClass
    Public Property Sample As Integer
End Class

Sub TestPropertyOrField()

    Dim obj As New TestClass()
    obj.Sample = 40

    ' This expression represents accessing a property or field.
    ' For static properties or fields, the first parameter must be Nothing.
    Dim memberExpr As Expression = Expression.PropertyOrField(
          Expression.Constant(obj),
          "Sample"
      )

    ' The following statement first creates an expression tree,
    ' then compiles it, and then runs it.
    Console.WriteLine(Expression.Lambda(Of Func(Of Integer))(memberExpr).Compile()())
End Sub

' This code example produces the following output:
'
' 40

Remarques

La Type propriété du résultat MemberExpression est égale à la ou FieldType aux PropertyType propriétés du PropertyInfo ou FieldInfo, respectivement, qui représente la propriété ou le champ indiqué par propertyOrFieldName.

Cette méthode recherche expression. Tapez et ses types de base pour une propriété ou un champ d’instance qui a le nom propertyOrFieldName. Les propriétés statiques ou les champs ne sont pas pris en charge. Les propriétés et les champs publics sont privilégiés par rapport aux propriétés et champs non publics. En outre, les propriétés sont attribuées à la préférence par rapport aux champs. Si une propriété ou un champ correspondant est trouvé, cette méthode passe expression et celle FieldInfo PropertyInfo qui représente cette propriété ou ce champ vers Property ou Field, respectivement.

S’applique à