Expression.Field 方法

定义

创建一个表示访问字段的 MemberExpression

重载

Field(Expression, FieldInfo)

创建一个表示访问字段的 MemberExpression

Field(Expression, String)

在给定字段名称的情况下,创建一个表示访问此字段的 MemberExpression

Field(Expression, Type, String)

创建一个表示访问字段的 MemberExpression

Field(Expression, FieldInfo)

Source:
MemberExpression.cs
Source:
MemberExpression.cs
Source:
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(在 Visual Basic 中为 Shared),expression 必须是 null

field
FieldInfo

要将 FieldInfo 属性设置为与其相等的 Member

返回

一个 MemberExpression,其 NodeType 属性等于 MemberAccess,并且其 ExpressionMember 属性设置为指定值。

例外

fieldnull

- 或 -

field 表示的字段不为 static(在 Visual Basic 中不为 Shared),且 expressionnull

expression.Type 不能赋给 field 所表示的字段的声明类型。

注解

Type生成的 MemberExpression 的 属性等于 FieldTypefield属性。

适用于

Field(Expression, String)

Source:
MemberExpression.cs
Source:
MemberExpression.cs
Source:
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

要访问的字段的名称。

返回

MemberExpressionNodeType 属性等于 MemberAccessExpression 属性设置为 expressionMember 属性设置为 FieldInfo(表示由 fieldName 表示的字段)。

例外

expressionfieldNamenull

没有在 fieldName.Type 或其基类型中定义名为 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及其基类型。 公共字段优先于非公共字段。 如果找到匹配的字段,此方法会将 expressionFieldInfo 表示该字段的 传递给 Field

适用于

Field(Expression, Type, String)

Source:
MemberExpression.cs
Source:
MemberExpression.cs
Source:
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

适用于