Expression.PropertyOrField(Expression, String) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Tworzy obiekt MemberExpression reprezentujący dostęp do właściwości lub pola.
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
Parametry
- expression
- Expression
Obiekt, którego ExpressionType zawiera właściwość lub pole o nazwie propertyOrFieldName
.
- propertyOrFieldName
- String
Nazwa właściwości lub pola, do których ma być uzyskiwany dostęp.
Zwraca
Właściwość MemberExpression , która ma właściwość równą MemberAccessNodeType , Expression właściwość ustawiona na expression
, a Member właściwość ustawiona na PropertyInfo właściwość lub FieldInfo reprezentuje właściwość lub pole oznaczone przez propertyOrFieldName
.
Wyjątki
expression
lub propertyOrFieldName
ma wartość null
.
W elemecie expression
nie zdefiniowano żadnej właściwości ani pola o nazwie propertyOrFieldName
. Typ lub jego typy podstawowe.
Przykłady
W poniższym przykładzie pokazano, jak utworzyć wyrażenie reprezentujące dostęp do właściwości lub pola.
// 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
Uwagi
Właściwość Type wynikowej MemberExpression jest równa PropertyType właściwościom PropertyInfo lub FieldType lub FieldInfo, odpowiednio, która reprezentuje właściwość lub pole oznaczone przez propertyOrFieldName
.
Ta metoda wyszukuje expression
metodę . Wpisz i jego typy podstawowe dla właściwości lub pola wystąpienia, które ma nazwę propertyOrFieldName
. Właściwości statyczne lub pola nie są obsługiwane. Właściwości publiczne i pola mają preferencje dotyczące właściwości i pól innych niż publiczne. Ponadto właściwości mają preferencje dotyczące pól. Jeśli zostanie znaleziona zgodna właściwość lub pole, ta metoda zostanie pomyślnie przekazywana expression
, a PropertyInfo właściwość lub FieldInfo , która reprezentuje odpowiednio tę właściwość lub pole Property lub Field.