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 プロパティを等しく設定する Expressionstatic (Visual Basic では Shared) の場合、expressionnull にする必要があります。

field
FieldInfo

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

戻り値

MemberExpression と等しい NodeType プロパティと、指定した値に設定された MemberAccess プロパティおよび Expression プロパティを含む Member

例外

fieldnull です。

- または -

field によって表されるフィールドが static (Visual Basic では Shared) ではなく、expressionnull です。

expression.Type は、field によって表されるフィールドの宣言型に代入できません。

注釈

Type結果MemberExpressionの の プロパティは、 の fieldプロパティとFieldType等しくなります。

適用対象

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

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

fieldName
String

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

戻り値

MemberExpression と等しい NodeType プロパティ、MemberAccess に設定された Expression プロパティ、および expression により示されるフィールドを表す Member に設定された FieldInfo プロパティを含む fieldName

例外

expression または fieldNamenull です。

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

注釈

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

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

適用対象

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 を指定できます。

type
Type

フィールドを格納している Type

fieldName
String

アクセスされるフィールド。

戻り値

作成された MemberExpression

適用対象