Поделиться через


Expression.Field Метод

Определение

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

Перегрузки

Field(Expression, FieldInfo)

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

Field(Expression, String)

Создает MemberExpression, который представляет доступ к полю, которому предоставлено имя поля.

Field(Expression, Type, String)

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

Field(Expression, FieldInfo)

Исходный код:
MemberExpression.cs
Исходный код:
MemberExpression.cs
Исходный код:
MemberExpression.cs

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

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);
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
Public Shared Function Field (expression As Expression, field As FieldInfo) As MemberExpression

Параметры

expression
Expression

Объект Expression, который следует задать в качестве значения свойства Expression. Для static (Shared в Visual Basic) параметр expression должен иметь значение null.

field
FieldInfo

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

Возвращаемое значение

Выражение MemberExpression со свойствомNodeType, равным MemberAccess, и свойствами Expression и Member, для которых заданы указанные значения.

Исключения

field имеет значение null.

-или-

Поле, представленное параметром field, не является static (Shared в Visual Basic), и expression равно null.

Параметр expression.Type не назначается объявляемому типу поля, представленному параметром field.

Комментарии

Свойство Type результирующего MemberExpression объекта равно свойству FieldType объекта field.

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

Field(Expression, String)

Исходный код:
MemberExpression.cs
Исходный код:
MemberExpression.cs
Исходный код:
MemberExpression.cs

Создает MemberExpression, который представляет доступ к полю, которому предоставлено имя поля.

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
Public Shared Function Field (expression As Expression, fieldName As String) As MemberExpression

Параметры

expression
Expression

Expression, где Type содержит поле с именем fieldName. Для статических полей допускается значение NULL.

fieldName
String

Имя поля для доступа.

Возвращаемое значение

Выражение MemberExpression, имеющее свойство NodeType, равное MemberAccess, свойство Expression, для которого задано значение expression, и свойство Member, для которого задано значение FieldInfo, представляющее поле, обозначенное с помощью параметра fieldName.

Исключения

Параметр expression или fieldName имеет значение null.

Не определено поле с именем fieldName для параметра expression.Type или его базовых типов.

Примеры

В следующем примере кода показано, как создать выражение, представляющее доступ к полю.

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

Комментарии

Свойство Type результирующего MemberExpression объекта равно свойству FieldTypeFieldInfo объекта , представляющего поле, обозначенное .fieldName

Этот метод выполняет поиск expression. Тип и его базовые типы для поля с именем fieldName. Общедоступным полям отдается предпочтение по сравнению с не открытыми полями. При обнаружении соответствующего поля этот метод передает expression и FieldInfo , представляющий это поле, в Field.

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

Field(Expression, Type, String)

Исходный код:
MemberExpression.cs
Исходный код:
MemberExpression.cs
Исходный код:
MemberExpression.cs

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

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);
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
Public Shared Function Field (expression As Expression, type As Type, fieldName As String) As MemberExpression

Параметры

expression
Expression

Объект, содержащий поле. Для статических полей допускается значение NULL.

type
Type

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

fieldName
String

Поле для доступа.

Возвращаемое значение

Созданный MemberExpression.

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