Expression.PropertyOrField(Expression, String) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 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 aux PropertyType propriétés ou FieldType de ou PropertyInfoFieldInfo, respectivement, qui représente la propriété ou le champ désigné par propertyOrFieldName
.
Cette méthode recherche expression
. Type et ses types de base pour une propriété ou un champ instance qui porte le nom propertyOrFieldName
. Les propriétés ou champs statiques ne sont pas pris en charge. Les propriétés et les champs publics sont prioritaires par rapport aux propriétés et aux champs non publics. En outre, les propriétés sont prioritaires par rapport aux champs. Si une propriété ou un champ correspondant est trouvé, cette méthode transmet expression
et PropertyInfo ou FieldInfo qui représente cette propriété ou ce champ à Property ou Field, respectivement.