Expression.Field メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
フィールドへのアクセスを表す 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);
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
にする必要があります。
戻り値
MemberExpression と等しい NodeType プロパティと、指定した値に設定された MemberAccess プロパティおよび Expression プロパティを含む Member。
例外
field
は null
です。
- または -
field
によって表されるフィールドが static
(Visual Basic では Shared
) ではなく、expression
が null
です。
expression
.Type は、field
によって表されるフィールドの宣言型に代入できません。
注釈
Type結果MemberExpressionの の プロパティは、 の field
プロパティとFieldType等しくなります。
適用対象
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
Expression に Type という名前のフィールドが含まれている fieldName
。 静的フィールドの場合は null を指定できます。
- fieldName
- String
アクセスするフィールドの名前。
戻り値
MemberExpression と等しい NodeType プロパティ、MemberAccess に設定された Expression プロパティ、および expression
により示されるフィールドを表す Member に設定された FieldInfo プロパティを含む fieldName
。
例外
expression
または fieldName
が null
です。
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表す の プロパティFieldInfoとfieldName
等しくなります。
このメソッドは を検索します expression
。という名前 fieldName
のフィールドの型とその基本型。 パブリック フィールドは、パブリック以外のフィールドよりも優先されます。 一致するフィールドが見つかった場合、このメソッドは を渡し、FieldInfoそのフィールドを表す を にField渡expression
します。
適用対象
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);
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 を指定できます。
- fieldName
- String
アクセスされるフィールド。
戻り値
作成された MemberExpression。
適用対象
.NET