Expression.PropertyOrField(Expression, String) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt eine MemberExpression, die den Zugriff auf eine Eigenschaft oder ein Feld darstellt.
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
Parameter
- expression
- Expression
Eine Expression, deren Type eine Eigenschaft oder ein Feld namens propertyOrFieldName
enthält.
- propertyOrFieldName
- String
Der Name einer Eigenschaft oder eines Felds, auf die bzw. das zugegriffen werden soll.
Gibt zurück
Eine MemberExpression, bei der die NodeType-Eigenschaft gleich MemberAccess ist, die Expression-Eigenschaft auf expression
festgelegt ist und die Member-Eigenschaft auf die PropertyInfo oder FieldInfo festgelegt ist, die die durch propertyOrFieldName
angegebene Eigenschaft bzw. das Feld darstellt.
Ausnahmen
expression
oder propertyOrFieldName
ist null
.
In propertyOrFieldName
.Type oder seinen Basistypen ist keine Eigenschaft bzw. kein Feld mit dem Namen expression
definiert.
Beispiele
Das folgende Beispiel zeigt, wie Sie einen Ausdruck erstellen, der den Zugriff auf eine Eigenschaft oder ein Feld darstellt.
// 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
Hinweise
Die Type -Eigenschaft des resultierenden MemberExpression ist gleich den PropertyType -Eigenschaften oder FieldType -Eigenschaften von PropertyInfo oder FieldInfobzw. , die die Eigenschaft oder das Feld darstellt, die durch bezeichnet werden propertyOrFieldName
.
Diese Methode durchsucht expression
. Geben Sie und die zugehörigen Basistypen für eine instance Eigenschaft oder ein Feld ein, das den Namen propertyOrFieldName
hat. Statische Eigenschaften oder Felder werden nicht unterstützt. Öffentliche Eigenschaften und Felder werden gegenüber nicht öffentlichen Eigenschaften und Feldern bevorzugt. Außerdem werden Eigenschaften gegenüber Feldern bevorzugt. Wenn eine übereinstimmende Eigenschaft oder Feld gefunden wird, wird diese Methode übergibt expression
und PropertyInfo oder FieldInfo , das darstellt, Eigenschaft oder ein Feld an Property oder Fieldbzw.