Expression.PropertyOrField(Expression, String) Метод

Определение

Создает объект MemberExpression, представляющий доступ к свойству или полю.Creates a MemberExpression that represents accessing a property or field.

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

Параметры

expression
Expression

Expression, в свойстве Type которого содержится свойство или поле с именем, заданным параметром propertyOrFieldName.An Expression whose Type contains a property or field named propertyOrFieldName. Для статических членов допускается значение NULL.This can be null for static members.

propertyOrFieldName
String

Имя свойства или поля для доступа.The name of a property or field to be accessed.

Возвраты

Выражение MemberExpression, имеющее свойство NodeType, равное MemberAccess, свойство Expression, для которого задано значение expression, и свойство Member, для которого задано значение PropertyInfo или FieldInfo, представляющее свойство или поле, обозначенное с помощью параметра propertyOrFieldName.A MemberExpression that has the NodeType property equal to MemberAccess, the Expression property set to expression, and the Member property set to the PropertyInfo or FieldInfo that represents the property or field denoted by propertyOrFieldName.

Исключения

Параметр expression или propertyOrFieldName имеет значение null.expression or propertyOrFieldName is null.

Не определено свойство или поле с именем propertyOrFieldName для типа expression.Type или его базовых типов.No property or field named propertyOrFieldName is defined in expression.Type or its base types.

Примеры

В следующем примере показано, как создать выражение, которое представляет доступ к свойству или полю.The following example shows how to create an expression that represents accessing a property or field.

// 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

Комментарии

MemberExpression FieldType СвойстворезультирующегоpropertyOrFieldNameобъекта равно PropertyType свойствамPropertyInfoилисоответственно свойству или, которое представляет свойство или поле ,обозначенное.FieldInfo TypeThe Type property of the resulting MemberExpression is equal to the PropertyType or FieldType properties of the PropertyInfo or FieldInfo, respectively, that represents the property or field denoted by propertyOrFieldName.

Этот метод выполняет expressionПоиск. Тип и его базовые типы для свойства или поля с именем propertyOrFieldName.This method searches expression.Type and its base types for a property or field that has the name propertyOrFieldName. Открытые свойства и поля имеют приоритет над неоткрытыми свойствами и полями.Public properties and fields are given preference over non-public properties and fields. Кроме того, свойства получают предпочтение для полей.Also, properties are given preference over fields. Если найдено совпадающее свойство или поле, expression этот метод передается, а объект PropertyInfo или FieldInfo , представляющий это свойство или Property поле Field, соответственно.If a matching property or field is found, this method passes expression and the PropertyInfo or FieldInfo that represents that property or field to Property or Field, respectively.

Применяется к