Expression.Property メソッド

定義

プロパティへのアクセスを表す 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.cs
ソース:
IndexExpression.cs
ソース:
IndexExpression.cs

インデックス付きプロパティへのアクセスを表す 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.cs
ソース:
IndexExpression.cs
ソース:
IndexExpression.cs

インデックス付きプロパティへのアクセスを表す 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.cs
ソース:
IndexExpression.cs
ソース:
IndexExpression.cs

インデックス付きプロパティへのアクセスを表す 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.cs
ソース:
MemberExpression.cs
ソース:
MemberExpression.cs

プロパティにアクセスする 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 を指定できます。

type
Type

プロパティを格納する Type

propertyName
String

アクセスするプロパティ。

戻り値

作成された MemberExpression

適用対象

Property(Expression, PropertyInfo)

ソース:
MemberExpression.cs
ソース:
MemberExpression.cs
ソース:
MemberExpression.cs

プロパティへのアクセスを表す 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

例外

propertynull です。

- または -

property が表すプロパティは static (Visual Basic では Shared) ではなく、expressionnull です。

expression.Type は、property が表すプロパティの宣言型に代入できません。

注釈

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

property 表される プロパティが static (Shared Visual Basic の場合) の expression 場合は、 を指定 nullできます。

適用対象

Property(Expression, MethodInfo)

ソース:
MemberExpression.cs
ソース:
MemberExpression.cs
ソース:
MemberExpression.cs

プロパティ アクセサー メソッドを使用することによるプロパティへのアクセスを表す 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

例外

propertyAccessornull です。

- または -

propertyAccessor が表すメソッドは static (Visual Basic では Shared) ではなく、expressionnull です。

expression.Type は、propertyAccessor の表すメソッドの宣言型に割り当てることができません。

- または -

propertyAccessor が表すメソッドは、プロパティ アクセサー メソッドではありません。

注釈

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

propertyAccessor表されるメソッドが (Sharedstatic Visual Basic の場合) のexpression場合は、 を指定nullできます。

適用対象

Property(Expression, String)

ソース:
MemberExpression.cs
ソース:
MemberExpression.cs
ソース:
MemberExpression.cs

プロパティへのアクセスを表す 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

ExpressionType という名前のプロパティが含まれている propertyName。 静的プロパティの場合は null を指定できます。

propertyName
String

アクセスするプロパティの名前。

戻り値

MemberExpression と等しい NodeType プロパティ、MemberAccess に設定された Expression プロパティ、および expression により示されるプロパティを表す Member に設定された PropertyInfo プロパティを含む propertyName

例外

expression または propertyNamenull です。

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プロパティPropertyInfoPropertyType表す の プロパティと等しくなります。

このメソッドは を検索します expression。型と、 という名前 propertyNameのプロパティの基本型。 パブリック プロパティは、パブリック以外のプロパティよりも優先されます。 一致するプロパティが見つかった場合、このメソッドは、 とそのプロパティをPropertyInfo表す を にPropertyexpressionします。

適用対象