通过


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
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。 对于 staticShared 在 Visual Basic 中), expression 必须是 null

field
FieldInfo

FieldInfo 设置的属性 Member 等于。

返回

一个MemberExpression属性NodeType等于MemberAccessExpressionMember属性设置为指定值。

例外

fieldnull

-或-

表示的field字段不在 static Visual Basic 中(Shared在 Visual Basic 中expression)。null

expression.类型不能分配给由 field该字段表示的声明类型。

注解

Type生成的MemberExpression属性等于 FieldType ..field

适用于

Field(Expression, String)

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

要访问的字段的名称。

返回

一个属性等于、属性设置为 /> 和属性设置为表示所表示的字段的属性。

属性

例外

expressionfieldNamenull.

未在 . 中expression定义命名fieldName的字段。类型或其基类型。

示例

下面的代码示例演示如何创建表示访问字段的表达式。

// 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表示所fieldName表示字段的属性FieldInfo

此方法搜索 expression。具有名称 fieldName的字段的类型及其基类型。 公共字段优先于非公共字段。 如果找到匹配的字段,此方法将传递expressionFieldInfo表示该字段。Field

适用于

Field(Expression, Type, String)

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

适用于