Expression.Field メソッド

定義

フィールドへのアクセスを表す MemberExpression を作成します。

オーバーロード

名前 説明
Field(Expression, FieldInfo)

フィールドへのアクセスを表す MemberExpression を作成します。

Field(Expression, String)

フィールドの名前を指定してフィールドへのアクセスを表す MemberExpression を作成します。

Field(Expression, Type, String)

フィールドへのアクセスを表す MemberExpression を作成します。

Field(Expression, FieldInfo)

フィールドへのアクセスを表す 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);
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 プロパティを等しい値に設定するExpressionstatic (Visual Basic のShared) の場合は、expressionnullする必要があります。

field
FieldInfo

FieldInfo プロパティを等しく設定するMember

返品

MemberExpression プロパティが NodeType と等しく、MemberAccessプロパティとExpressionプロパティが指定した値に設定されているMember

例外

fieldnullです。

-または-

fieldで表されるフィールドはstaticされず (Visual Basic ではShared)、expressionnull

expression.型は、 fieldで表されるフィールドの宣言型には割り当てできません。

注釈

結果のTypeMemberExpressionプロパティは、FieldTypefield プロパティと等しくなります。

適用対象

Field(Expression, String)

フィールドの名前を指定してフィールドへのアクセスを表す 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

ExpressionType という名前のフィールドが含まれるfieldName。 静的フィールドには null を指定できます。

fieldName
String

アクセスするフィールドの名前。

返品

MemberExpression プロパティが NodeType と等しく、MemberAccess プロパティが Expression に設定され、expression プロパティが Member で示されるフィールドを表すFieldInfoに設定されているfieldName

例外

expression または fieldNamenull

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

注釈

結果のTypeMemberExpressionプロパティは、FieldTypeで示されるフィールドを表すFieldInfofieldName プロパティと等しくなります。

このメソッドは expressionを検索します。名前が fieldNameフィールドの型とその基本型。 パブリック フィールドは、パブリック以外のフィールドよりも優先されます。 一致するフィールドが見つかった場合、このメソッドは expression と、そのフィールドを表す FieldInfoFieldに渡します。

適用対象

Field(Expression, Type, String)

フィールドへのアクセスを表す 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);
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

適用対象