Language

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.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 (Visual Basic のShared) の場合は、expressionをnullする必要があります。

field
FieldInfo

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

返品

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

例外

field は nullです。

-又は-

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

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

注釈

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

適用対象

Field(Expression, String)

ソース:
MemberExpression.cs
ソース:
MemberExpression.cs
ソース:
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);
[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

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

返品

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

属性

例外

expression または fieldName が null。

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

注釈

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

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

適用対象

Field(Expression, Type, String)

ソース:
MemberExpression.cs
ソース:
MemberExpression.cs
ソース:
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。

適用対象