Expression.PropertyOrField(Expression, String) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Crea un oggetto MemberExpression che rappresenta l'accesso a una proprietà o un campo.
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
Parametri
- expression
- Expression
Oggetto Expression la cui proprietà Type contiene una proprietà o un campo denominato propertyOrFieldName
.
- propertyOrFieldName
- String
Nome di una proprietà o di un campo a cui accedere.
Restituisce
Oggetto MemberExpression la cui proprietà NodeType è uguale a MemberAccess, la cui proprietà Expression è impostata su expression
e la cui proprietà Member è impostata su PropertyInfo o su FieldInfo, che rappresenta la proprietà o il campo identificato da propertyOrFieldName
.
Eccezioni
expression
o propertyOrFieldName
è null
.
Nessuna proprietà o campo denominato propertyOrFieldName
è definito in expression
.Type o nei relativi tipi di base.
Esempio
Nell'esempio seguente viene illustrato come creare un'espressione che rappresenta l'accesso a una proprietà o a un campo.
// 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
Commenti
La Type proprietà del risultato MemberExpression è uguale rispettivamente alle PropertyTypeFieldType proprietà o dell'oggetto PropertyInfo o FieldInfoche rappresenta rispettivamente la proprietà o il campo denotato da propertyOrFieldName
.
Questo metodo cerca expression
. Digitare e i relativi tipi di base per una proprietà o un campo di istanza con il nome propertyOrFieldName
. Le proprietà statiche o i campi non sono supportati. Le proprietà e i campi pubblici vengono assegnati alle preferenze rispetto alle proprietà e ai campi non pubblici. Inoltre, le proprietà vengono date preferenza sui campi. Se viene trovata una proprietà o un campo corrispondente, questo metodo passa expression
e l'oggetto PropertyInfo o FieldInfo che rappresenta rispettivamente tale proprietà o campo a Property o Field.