Expression.Field Expression.Field Expression.Field Method

定義

フィールドへのアクセスを表す MemberExpression を作成します。Creates a MemberExpression that represents accessing a field.

オーバーロード

Field(Expression, FieldInfo) Field(Expression, FieldInfo) Field(Expression, FieldInfo)

フィールドへのアクセスを表す MemberExpression を作成します。Creates a MemberExpression that represents accessing a field.

Field(Expression, String) Field(Expression, String) Field(Expression, String)

フィールドの名前を指定してフィールドへのアクセスを表す MemberExpression を作成します。Creates a MemberExpression that represents accessing a field given the name of the field.

Field(Expression, Type, String) Field(Expression, Type, String) Field(Expression, Type, String)

フィールドへのアクセスを表す MemberExpression を作成します。Creates a MemberExpression that represents accessing a field.

Field(Expression, FieldInfo) Field(Expression, FieldInfo) Field(Expression, FieldInfo)

フィールドへのアクセスを表す MemberExpression を作成します。Creates a MemberExpression that represents accessing a 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

パラメーター

expression
Expression Expression Expression

Expression プロパティを等しく設定する ExpressionAn Expression to set the Expression property equal to. static (Visual Basic では Shared) の場合、expressionnull にする必要があります。For static (Shared in Visual Basic), expression must be null.

field
FieldInfo FieldInfo FieldInfo

FieldInfo プロパティを等しく設定する MemberThe FieldInfo to set the Member property equal to.

戻り値

MemberExpression と等しい NodeType プロパティと、指定した値に設定された MemberAccess プロパティおよび Expression プロパティを含む MemberA MemberExpression that has the NodeType property equal to MemberAccess and the Expression and Member properties set to the specified values.

例外

fieldnullです。field is null.

または-or- field によって表されるフィールドが static (Visual Basic では Shared) ではなく、expressionnull です。The field represented by field is not static (Shared in Visual Basic) and expression is null.

expression.Type は、field によって表されるフィールドの宣言型に代入できません。expression.Type is not assignable to the declaring type of the field represented by field.

注釈

TypeプロパティMemberExpressionと等しい、FieldTypeプロパティのfieldします。The Type property of the resulting MemberExpression is equal to the FieldType property of field.

Field(Expression, String) Field(Expression, String) Field(Expression, String)

フィールドの名前を指定してフィールドへのアクセスを表す MemberExpression を作成します。Creates a MemberExpression that represents accessing a field given the name of the field.

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

パラメーター

expression
Expression Expression Expression

ExpressionType という名前のフィールドが含まれている fieldNameAn Expression whose Type contains a field named fieldName. 静的フィールドの場合は null を指定できます。This can be null for static fields.

fieldName
String String String

アクセスするフィールドの名前。The name of a field to be accessed.

戻り値

MemberExpression と等しい NodeType プロパティ、MemberAccess に設定された Expression プロパティ、および expression により示されるフィールドを表す Member に設定された FieldInfo プロパティを含む fieldNameA MemberExpression that has the NodeType property equal to MemberAccess, the Expression property set to expression, and the Member property set to the FieldInfo that represents the field denoted by fieldName.

例外

expression または fieldNamenull です。expression or fieldName is null.

fieldName.Type またはその基本型では expression という名前のフィールドが定義されていません。No field named fieldName is defined in expression.Type or its base types.

次のコード例では、フィールドへのアクセスを表す式を作成する方法を示します。The following code example shows how to create an expression that represents accessing a field.

// 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します。The Type property of the resulting MemberExpression is equal to the FieldType property of the FieldInfo that represents the field denoted by fieldName.

このメソッドは検索expressionします。型とその基本型の名前を持つフィールドfieldNameします。This method searches expression.Type and its base types for a field that has the name fieldName. パブリック フィールドは、パブリックでないフィールドに対する基本設定を指定します。Public fields are given preference over non-public fields. 一致するフィールドが見つかった場合、このメソッドを渡しますexpressionFieldInfoにそのフィールドを表すFieldします。If a matching field is found, this method passes expression and the FieldInfo that represents that field to Field.

Field(Expression, Type, String) Field(Expression, Type, String) Field(Expression, Type, String)

フィールドへのアクセスを表す MemberExpression を作成します。Creates a MemberExpression that represents accessing a field.

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

パラメーター

expression
Expression Expression Expression

フィールドの格納オブジェクト。The containing object of the field. 静的フィールドの場合は null を指定できます。This can be null for static fields.

type
Type Type Type

フィールドを格納している TypeThe Type that contains the field.

fieldName
String String String

アクセスされるフィールド。The field to be accessed.

戻り値

適用対象