Expression.PropertyOrField(Expression, String) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
プロパティまたはフィールドへのアクセスを表す MemberExpression を作成します。
public:
static System::Linq::Expressions::MemberExpression ^ PropertyOrField(System::Linq::Expressions::Expression ^ expression, System::String ^ propertyOrFieldName);
public static System.Linq.Expressions.MemberExpression PropertyOrField (System.Linq.Expressions.Expression expression, string propertyOrFieldName);
static member PropertyOrField : System.Linq.Expressions.Expression * string -> System.Linq.Expressions.MemberExpression
Public Shared Function PropertyOrField (expression As Expression, propertyOrFieldName As String) As MemberExpression
パラメーター
- expression
- Expression
Expression に Type という名前のプロパティまたはフィールドが含まれている propertyOrFieldName
。
- propertyOrFieldName
- String
アクセスするプロパティまたはフィールドの名前。
戻り値
MemberExpression と等しい NodeType プロパティ、MemberAccess に設定された Expression プロパティ、および expression
によって示されるプロパティまたはフィールドを表す Member または PropertyInfo に設定された FieldInfo プロパティを含む propertyOrFieldName
。
例外
expression
または propertyOrFieldName
が null
です。
propertyOrFieldName
.Type またはその基本型では expression
という名前のプロパティまたはフィールドが定義されていません。
例
次の例は、プロパティまたはフィールドへのアクセスを表す式を作成する方法を示しています。
// Add the following directive to your file:
// using System.Linq.Expressions;
class TestClass
{
public int sample { get; set; }
}
static void TestPropertyOrField()
{
TestClass obj = new TestClass();
obj.sample = 40;
// This expression represents accessing a property or field.
// For static properties or fields, the first parameter must be null.
Expression memberExpr = Expression.PropertyOrField(
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>>(memberExpr).Compile()());
}
// This code example produces the following output:
//
// 40
' Add the following directive to your file:
' Imports System.Linq.Expressions
Class TestClass
Public Property Sample As Integer
End Class
Sub TestPropertyOrField()
Dim obj As New TestClass()
obj.Sample = 40
' This expression represents accessing a property or field.
' For static properties or fields, the first parameter must be Nothing.
Dim memberExpr As Expression = Expression.PropertyOrField(
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))(memberExpr).Compile()())
End Sub
' This code example produces the following output:
'
' 40
注釈
結果MemberExpressionの の プロパティはType、 または のプロパティFieldInfoPropertyInfoとFieldType等しくPropertyType、それぞれ で示されるプロパティまたはフィールドをpropertyOrFieldName
表します。
このメソッドは を検索します expression
。という名前 propertyOrFieldName
のインスタンス プロパティまたはフィールドの型とその基本型。 静的プロパティまたはフィールドはサポートされていません。 パブリック プロパティとフィールドは、パブリック以外のプロパティとフィールドよりも優先されます。 また、プロパティにはフィールドよりも優先されます。 一致するプロパティまたはフィールドが見つかった場合、このメソッドは、 とFieldInfoPropertyInfo、そのプロパティまたはフィールドを表す または をそれぞれ または FieldにProperty渡expression
します。
適用対象
.NET