Expression.Property メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
プロパティへのアクセスを表す MemberExpression を作成します。
オーバーロード
Property(Expression, String, Expression[]) |
インデックス付きプロパティへのアクセスを表す IndexExpression を作成します。 |
Property(Expression, PropertyInfo, Expression[]) |
インデックス付きプロパティへのアクセスを表す IndexExpression を作成します。 |
Property(Expression, PropertyInfo, IEnumerable<Expression>) |
インデックス付きプロパティへのアクセスを表す IndexExpression を作成します。 |
Property(Expression, Type, String) |
プロパティにアクセスする MemberExpression を作成します。 |
Property(Expression, PropertyInfo) |
プロパティへのアクセスを表す MemberExpression を作成します。 |
Property(Expression, MethodInfo) |
プロパティ アクセサー メソッドを使用することによるプロパティへのアクセスを表す MemberExpression を作成します。 |
Property(Expression, String) |
プロパティへのアクセスを表す MemberExpression を作成します。 |
Property(Expression, String, Expression[])
インデックス付きプロパティへのアクセスを表す IndexExpression を作成します。
public:
static System::Linq::Expressions::IndexExpression ^ Property(System::Linq::Expressions::Expression ^ instance, System::String ^ propertyName, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.IndexExpression Property (System.Linq.Expressions.Expression instance, string propertyName, params System.Linq.Expressions.Expression[] arguments);
public static System.Linq.Expressions.IndexExpression Property (System.Linq.Expressions.Expression instance, string propertyName, params System.Linq.Expressions.Expression[]? arguments);
static member Property : System.Linq.Expressions.Expression * string * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.IndexExpression
Public Shared Function Property (instance As Expression, propertyName As String, ParamArray arguments As Expression()) As IndexExpression
パラメーター
- instance
- Expression
プロパティが属するオブジェクト。 プロパティが static (Visual Basic では Shared) の場合は、null にする必要があります。
- propertyName
- String
インデクサーの名前。
- arguments
- Expression[]
プロパティのインデックス化に使用する Expression オブジェクトの配列。
戻り値
作成された IndexExpression。
適用対象
Property(Expression, PropertyInfo, Expression[])
インデックス付きプロパティへのアクセスを表す IndexExpression を作成します。
public:
static System::Linq::Expressions::IndexExpression ^ Property(System::Linq::Expressions::Expression ^ instance, System::Reflection::PropertyInfo ^ indexer, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.IndexExpression Property (System.Linq.Expressions.Expression instance, System.Reflection.PropertyInfo indexer, params System.Linq.Expressions.Expression[] arguments);
public static System.Linq.Expressions.IndexExpression Property (System.Linq.Expressions.Expression? instance, System.Reflection.PropertyInfo indexer, params System.Linq.Expressions.Expression[]? arguments);
static member Property : System.Linq.Expressions.Expression * System.Reflection.PropertyInfo * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.IndexExpression
Public Shared Function Property (instance As Expression, indexer As PropertyInfo, ParamArray arguments As Expression()) As IndexExpression
パラメーター
- instance
- Expression
プロパティが属するオブジェクト。 プロパティが static (Visual Basic では Shared) の場合は、null にする必要があります。
- indexer
- PropertyInfo
インデックス化するプロパティを表す PropertyInfo。
- arguments
- Expression[]
プロパティのインデックス化に使用する Expression オブジェクトの配列。
戻り値
作成された IndexExpression。
適用対象
Property(Expression, PropertyInfo, IEnumerable<Expression>)
インデックス付きプロパティへのアクセスを表す IndexExpression を作成します。
public:
static System::Linq::Expressions::IndexExpression ^ Property(System::Linq::Expressions::Expression ^ instance, System::Reflection::PropertyInfo ^ indexer, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.IndexExpression Property (System.Linq.Expressions.Expression instance, System.Reflection.PropertyInfo indexer, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> arguments);
public static System.Linq.Expressions.IndexExpression Property (System.Linq.Expressions.Expression? instance, System.Reflection.PropertyInfo indexer, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression>? arguments);
static member Property : System.Linq.Expressions.Expression * System.Reflection.PropertyInfo * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.IndexExpression
Public Shared Function Property (instance As Expression, indexer As PropertyInfo, arguments As IEnumerable(Of Expression)) As IndexExpression
パラメーター
- instance
- Expression
プロパティが属するオブジェクト。 プロパティが static (Visual Basic では Shared) の場合は、null にする必要があります。
- indexer
- PropertyInfo
インデックス化するプロパティを表す PropertyInfo。
- arguments
- IEnumerable<Expression>
プロパティのインデックス化に使用する IEnumerable<T> オブジェクトの Expression。
戻り値
作成された IndexExpression。
適用対象
Property(Expression, Type, String)
プロパティにアクセスする MemberExpression を作成します。
public:
static System::Linq::Expressions::MemberExpression ^ Property(System::Linq::Expressions::Expression ^ expression, Type ^ type, System::String ^ propertyName);
public static System.Linq.Expressions.MemberExpression Property (System.Linq.Expressions.Expression expression, Type type, string propertyName);
public static System.Linq.Expressions.MemberExpression Property (System.Linq.Expressions.Expression? expression, Type type, string propertyName);
static member Property : System.Linq.Expressions.Expression * Type * string -> System.Linq.Expressions.MemberExpression
Public Shared Function Property (expression As Expression, type As Type, propertyName As String) As MemberExpression
パラメーター
- expression
- Expression
プロパティの格納オブジェクト。 静的プロパティの場合は null を指定できます。
- propertyName
- String
アクセスするプロパティ。
戻り値
作成された MemberExpression。
適用対象
Property(Expression, PropertyInfo)
プロパティへのアクセスを表す MemberExpression を作成します。
public:
static System::Linq::Expressions::MemberExpression ^ Property(System::Linq::Expressions::Expression ^ expression, System::Reflection::PropertyInfo ^ property);
public static System.Linq.Expressions.MemberExpression Property (System.Linq.Expressions.Expression expression, System.Reflection.PropertyInfo property);
public static System.Linq.Expressions.MemberExpression Property (System.Linq.Expressions.Expression? expression, System.Reflection.PropertyInfo property);
static member Property : System.Linq.Expressions.Expression * System.Reflection.PropertyInfo -> System.Linq.Expressions.MemberExpression
Public Shared Function Property (expression As Expression, property As PropertyInfo) As MemberExpression
パラメーター
- expression
- Expression
Expression プロパティを等しく設定する Expression。 静的プロパティの場合は null を指定できます。
- property
- PropertyInfo
PropertyInfo プロパティを等しく設定する Member。
戻り値
MemberExpression と等しい NodeType プロパティと、指定した値に設定された MemberAccess プロパティおよび Expression プロパティを含む Member。
例外
property
は null
です。
- または -
property
が表すプロパティは static
(Visual Basic では Shared
) ではなく、expression
は null
です。
expression
.Type は、property
が表すプロパティの宣言型に代入できません。
注釈
Type結果MemberExpressionの の プロパティは、 の MemberプロパティとPropertyType等しくなります。
で property
表される プロパティが static
(Shared
Visual Basic の場合) の expression
場合は、 を指定 null
できます。
適用対象
Property(Expression, MethodInfo)
プロパティ アクセサー メソッドを使用することによるプロパティへのアクセスを表す MemberExpression を作成します。
public:
static System::Linq::Expressions::MemberExpression ^ Property(System::Linq::Expressions::Expression ^ expression, System::Reflection::MethodInfo ^ propertyAccessor);
public static System.Linq.Expressions.MemberExpression Property (System.Linq.Expressions.Expression expression, System.Reflection.MethodInfo propertyAccessor);
public static System.Linq.Expressions.MemberExpression Property (System.Linq.Expressions.Expression? expression, System.Reflection.MethodInfo propertyAccessor);
static member Property : System.Linq.Expressions.Expression * System.Reflection.MethodInfo -> System.Linq.Expressions.MemberExpression
Public Shared Function Property (expression As Expression, propertyAccessor As MethodInfo) As MemberExpression
パラメーター
- expression
- Expression
Expression プロパティを等しく設定する Expression。 静的プロパティの場合は null を指定できます。
- propertyAccessor
- MethodInfo
プロパティ アクセサー メソッドを表す MethodInfo。
戻り値
MemberExpression と等しい NodeType プロパティ、MemberAccess に設定された Expression プロパティ、expression
でアクセスされるプロパティを表す Member に設定された PropertyInfo プロパティを含む propertyAccessor
。
例外
propertyAccessor
は null
です。
- または -
propertyAccessor
が表すメソッドは static
(Visual Basic では Shared
) ではなく、expression
は null
です。
expression
.Type は、propertyAccessor
の表すメソッドの宣言型に割り当てることができません。
- または -
propertyAccessor
が表すメソッドは、プロパティ アクセサー メソッドではありません。
注釈
Type結果MemberExpressionの の プロパティは、 の MemberプロパティとPropertyType等しくなります。
でpropertyAccessor
表されるメソッドが (Shared
static
Visual Basic の場合) のexpression
場合は、 を指定null
できます。
適用対象
Property(Expression, String)
プロパティへのアクセスを表す MemberExpression を作成します。
public:
static System::Linq::Expressions::MemberExpression ^ Property(System::Linq::Expressions::Expression ^ expression, System::String ^ propertyName);
public static System.Linq.Expressions.MemberExpression Property (System.Linq.Expressions.Expression expression, string propertyName);
static member Property : System.Linq.Expressions.Expression * string -> System.Linq.Expressions.MemberExpression
Public Shared Function Property (expression As Expression, propertyName As String) As MemberExpression
パラメーター
- expression
- Expression
Expression に Type という名前のプロパティが含まれている propertyName
。 静的プロパティの場合は null
を指定できます。
- propertyName
- String
アクセスするプロパティの名前。
戻り値
MemberExpression と等しい NodeType プロパティ、MemberAccess に設定された Expression プロパティ、および expression
により示されるプロパティを表す Member に設定された PropertyInfo プロパティを含む propertyName
。
例外
expression
または propertyName
が null
です。
propertyName
.Type またはその基本型では expression
という名前のプロパティが定義されていません。
例
次の例は、プロパティへのアクセスを表す式を作成する方法を示しています。
// Add the following directive to your file:
// using System.Linq.Expressions;
class TestPropertyClass
{
public int sample {get; set;}
}
static void TestProperty()
{
TestPropertyClass obj = new TestPropertyClass();
obj.sample = 40;
// This expression represents accessing a property.
// For static fields, the first parameter must be null.
Expression propertyExpr = Expression.Property(
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>>(propertyExpr).Compile()());
}
// This code example produces the following output:
//
// 40
' Add the following directive to your file:
' Imports System.Linq.Expressions
Class TestPropertyClass
Public Property Sample As Integer
End Class
Sub TestProperty()
Dim obj As New TestPropertyClass()
obj.Sample = 40
' This expression represents accessing a property.
' For static properties, the first parameter must be Nothing.
Dim propertyExpr As Expression = Expression.Property(
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))(propertyExpr).Compile()())
End Sub
' This code example produces the following output:
'
' 40
注釈
結果MemberExpressionの プロパティはType、 で示される propertyName
プロパティPropertyInfoをPropertyType表す の プロパティと等しくなります。
このメソッドは を検索します expression
。型と、 という名前 propertyName
のプロパティの基本型。 パブリック プロパティは、パブリック以外のプロパティよりも優先されます。 一致するプロパティが見つかった場合、このメソッドは、 とそのプロパティをPropertyInfo表す を にProperty渡expression
します。
適用対象
.NET