Expression.PropertyOrField(Expression, String) Metodo

Definizione

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.

Si applica a