Прочитать на английском

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


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);

Параметры

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.

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

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Field(Expression, String)

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

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

public static System.Linq.Expressions.MemberExpression Field (System.Linq.Expressions.Expression expression, string fieldName);

Параметры

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

Комментарии

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

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

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

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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, string fieldName);
public static System.Linq.Expressions.MemberExpression Field (System.Linq.Expressions.Expression? expression, Type type, string fieldName);

Параметры

expression
Expression

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

type
Type

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

fieldName
String

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

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

Созданный MemberExpression.

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

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0