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
.
Возвращаемое значение
Выражение 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.
- fieldName
- String
Поле для доступа.
Возвращаемое значение
Созданный MemberExpression.