Expression.Field Метод

Определение

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

Перегрузки

Field(Expression, FieldInfo)

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

Field(Expression, String)

Создает MemberExpression, который представляет доступ к полю, которому предоставлено имя поля.Creates a MemberExpression that represents accessing a field given the name of the field.

Field(Expression, Type, String)

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

Field(Expression, FieldInfo)

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

public:
 static System::Linq::Expressions::MemberExpression ^ Field(System::Linq::Expressions::Expression ^ expression, System::Reflection::FieldInfo ^ field);
public static System.Linq.Expressions.MemberExpression Field (System.Linq.Expressions.Expression expression, System.Reflection.FieldInfo field);
static member Field : System.Linq.Expressions.Expression * System.Reflection.FieldInfo -> System.Linq.Expressions.MemberExpression

Параметры

expression
Expression

Объект Expression, который следует задать в качестве значения свойства Expression.An Expression to set the Expression property equal to. Для static (Shared в Visual Basic) параметр expression должен иметь значение null.For static (Shared in Visual Basic), expression must be null.

field
FieldInfo

Объект FieldInfo, который следует задать в качестве значения свойства Member.The FieldInfo to set the Member property equal to.

Возвраты

Выражение MemberExpression со свойствомNodeType, равным MemberAccess, и свойствами Expression и Member, для которых заданы указанные значения.A MemberExpression that has the NodeType property equal to MemberAccess and the Expression and Member properties set to the specified values.

Исключения

Свойство field имеет значение null.field is null.

-или--or- Поле, представленное параметром field, не является static (Shared в Visual Basic), и expression равно null.The field represented by field is not static (Shared in Visual Basic) and expression is null.

Параметр expression.Type не назначается объявляемому типу поля, представленному параметром field.expression.Type is not assignable to the declaring type of the field represented by field.

Комментарии

Свойство результирующего MemberExpression объекта равно FieldType свойству объекта field. TypeThe Type property of the resulting MemberExpression is equal to the FieldType property of field.

Field(Expression, String)

Создает MemberExpression, который представляет доступ к полю, которому предоставлено имя поля.Creates a MemberExpression that represents accessing a field given the name of the field.

public:
 static System::Linq::Expressions::MemberExpression ^ Field(System::Linq::Expressions::Expression ^ expression, System::String ^ fieldName);
public static System.Linq.Expressions.MemberExpression Field (System.Linq.Expressions.Expression expression, string fieldName);
static member Field : System.Linq.Expressions.Expression * string -> System.Linq.Expressions.MemberExpression

Параметры

expression
Expression

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

fieldName
String

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

Возвраты

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

Исключения

Значение параметра expression или fieldNamenull.expression or fieldName is null.

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

Примеры

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

// Add the following directive to your file:
// using System.Linq.Expressions;  

class TestFieldClass
{
    int sample = 40;
}

static void TestField()
{       
    TestFieldClass obj = new TestFieldClass();
  
    // This expression represents accessing a field.
    // For static fields, the first parameter must be null.
    Expression fieldExpr = Expression.Field(
        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>>(fieldExpr).Compile()());
}

// This code example produces the following output:
//
// 40
' Add the following directive to your file:
' Imports System.Linq.Expressions

Class TestFieldClass
    Dim sample As Integer = 40
End Class

Sub TestField()

    Dim obj As New TestFieldClass()

    ' This expression represents accessing a field.
    ' For static fields, the first parameter must be Nothing.
    Dim fieldExpr As Expression = Expression.Field(
          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))(fieldExpr).Compile()())
End Sub

' This code example produces the following output:
'
' 40

Комментарии

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

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

Field(Expression, Type, String)

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

public:
 static System::Linq::Expressions::MemberExpression ^ Field(System::Linq::Expressions::Expression ^ expression, Type ^ type, System::String ^ fieldName);
public static System.Linq.Expressions.MemberExpression Field (System.Linq.Expressions.Expression expression, Type type, string fieldName);
static member Field : System.Linq.Expressions.Expression * Type * string -> System.Linq.Expressions.MemberExpression

Параметры

expression
Expression

Объект, содержащий поле.The containing object of the field. Для статических полей допускается значение NULL.This can be null for static fields.

type
Type

Объект Type, содержащий поле.The Type that contains the field.

fieldName
String

Поле для доступа.The field to be accessed.

Возвраты

Созданный MemberExpression.The created MemberExpression.

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