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


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.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 , равное свойству NodeTypeMemberAccess и ExpressionMember свойствам, заданным указанным значениям.

Исключения

field равно null.

–или–

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

expression. Тип не присваивается декларируемому типу поля, fieldпредставленному .

Комментарии

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

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

Field(Expression, String)

Исходный код:
MemberExpression.cs
Исходный код:
MemberExpression.cs
Исходный код:
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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")]
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
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")>]
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 свойствуexpressionMemberAccess, Expression свойству, заданному , и Member свойству, заданному FieldInfo для поля, обозначаемого fieldName.

Атрибуты

Исключения

expression или fieldName есть null.

Имя поля fieldName не определено в expression. Тип или базовые типы.

Примеры

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

// 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 объекта равно FieldType свойству FieldInfo , представляющего поле, которое обозначается fieldName.

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

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

Field(Expression, Type, String)

Исходный код:
MemberExpression.cs
Исходный код:
MemberExpression.cs
Исходный код:
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объект.

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