Expression.Property Expression.Property Expression.Property Expression.Property Method

定義

プロパティへのアクセスを表す MemberExpression を作成します。Creates a MemberExpression that represents accessing a property.

オーバーロード

Property(Expression, String, Expression[]) Property(Expression, String, Expression[]) Property(Expression, String, Expression[]) Property(Expression, String, Expression[])

インデックス付きプロパティへのアクセスを表す IndexExpression を作成します。Creates an IndexExpression representing the access to an indexed property.

Property(Expression, PropertyInfo, Expression[]) Property(Expression, PropertyInfo, Expression[]) Property(Expression, PropertyInfo, Expression[]) Property(Expression, PropertyInfo, Expression[])

インデックス付きプロパティへのアクセスを表す IndexExpression を作成します。Creates an IndexExpression representing the access to an indexed property.

Property(Expression, PropertyInfo, IEnumerable<Expression>) Property(Expression, PropertyInfo, IEnumerable<Expression>) Property(Expression, PropertyInfo, IEnumerable<Expression>) Property(Expression, PropertyInfo, IEnumerable<Expression>)

インデックス付きプロパティへのアクセスを表す IndexExpression を作成します。Creates an IndexExpression representing the access to an indexed property.

Property(Expression, Type, String) Property(Expression, Type, String) Property(Expression, Type, String)

プロパティにアクセスする MemberExpression を作成します。Creates a MemberExpression accessing a property.

Property(Expression, PropertyInfo) Property(Expression, PropertyInfo) Property(Expression, PropertyInfo)

プロパティへのアクセスを表す MemberExpression を作成します。Creates a MemberExpression that represents accessing a property.

Property(Expression, MethodInfo) Property(Expression, MethodInfo) Property(Expression, MethodInfo)

プロパティ アクセサー メソッドを使用することによるプロパティへのアクセスを表す MemberExpression を作成します。Creates a MemberExpression that represents accessing a property by using a property accessor method.

Property(Expression, String) Property(Expression, String) Property(Expression, String)

プロパティへのアクセスを表す MemberExpression を作成します。Creates a MemberExpression that represents accessing a property.

Property(Expression, String, Expression[]) Property(Expression, String, Expression[]) Property(Expression, String, Expression[]) Property(Expression, String, Expression[])

インデックス付きプロパティへのアクセスを表す IndexExpression を作成します。Creates an IndexExpression representing the access to an indexed property.

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);
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 Expression Expression Expression

プロパティが属するオブジェクト。The object to which the property belongs. プロパティが static (Visual Basic では Shared) の場合は、null にする必要があります。If the property is static/shared, it must be null.

propertyName
String String String String

インデクサーの名前。The name of the indexer.

arguments
Expression[]

プロパティのインデックス化に使用する Expression オブジェクトの配列。An array of Expression objects that are used to index the property.

戻り値

Property(Expression, PropertyInfo, Expression[]) Property(Expression, PropertyInfo, Expression[]) Property(Expression, PropertyInfo, Expression[]) Property(Expression, PropertyInfo, Expression[])

インデックス付きプロパティへのアクセスを表す IndexExpression を作成します。Creates an IndexExpression representing the access to an indexed property.

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);
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 Expression Expression Expression

プロパティが属するオブジェクト。The object to which the property belongs. プロパティが static (Visual Basic では Shared) の場合は、null にする必要があります。If the property is static/shared, it must be null.

indexer
PropertyInfo PropertyInfo PropertyInfo PropertyInfo

インデックス化するプロパティを表す PropertyInfoThe PropertyInfo that represents the property to index.

arguments
Expression[]

プロパティのインデックス化に使用する Expression オブジェクトの配列。An array of Expression objects that are used to index the property.

戻り値

Property(Expression, PropertyInfo, IEnumerable<Expression>) Property(Expression, PropertyInfo, IEnumerable<Expression>) Property(Expression, PropertyInfo, IEnumerable<Expression>) Property(Expression, PropertyInfo, IEnumerable<Expression>)

インデックス付きプロパティへのアクセスを表す IndexExpression を作成します。Creates an IndexExpression representing the access to an indexed property.

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 Expression Expression Expression

プロパティが属するオブジェクト。The object to which the property belongs. プロパティが static (Visual Basic では Shared) の場合は、null にする必要があります。If the property is static/shared, it must be null.

indexer
PropertyInfo PropertyInfo PropertyInfo PropertyInfo

インデックス化するプロパティを表す PropertyInfoThe PropertyInfo that represents the property to index.

arguments
IEnumerable<Expression>

プロパティのインデックス化に使用する IEnumerable<T> オブジェクトの ExpressionAn IEnumerable<T> of Expression objects that are used to index the property.

戻り値

Property(Expression, Type, String) Property(Expression, Type, String) Property(Expression, Type, String)

プロパティにアクセスする MemberExpression を作成します。Creates a MemberExpression accessing a property.

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);
static member Property : System.Linq.Expressions.Expression * Type * string -> System.Linq.Expressions.MemberExpression

パラメーター

expression
Expression Expression Expression Expression

プロパティの格納オブジェクト。The containing object of the property. 静的プロパティの場合は null を指定できます。This can be null for static properties.

type
Type Type Type Type

プロパティを格納する TypeThe Type that contains the property.

propertyName
String String String String

アクセスするプロパティ。The property to be accessed.

戻り値

Property(Expression, PropertyInfo) Property(Expression, PropertyInfo) Property(Expression, PropertyInfo)

プロパティへのアクセスを表す MemberExpression を作成します。Creates a MemberExpression that represents accessing a 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

パラメーター

expression
Expression Expression Expression Expression

Expression プロパティを等しく設定する ExpressionAn Expression to set the Expression property equal to. 静的プロパティの場合は null を指定できます。This can be null for static properties.

property
PropertyInfo PropertyInfo PropertyInfo PropertyInfo

PropertyInfo プロパティを等しく設定する MemberThe PropertyInfo 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.

例外

propertynullです。property is null.

または-or- property が表すプロパティは static (Visual Basic では Shared) ではなく、expressionnull です。The property that property represents is not static (Shared in Visual Basic) and expression is null.

expression.Type は、property が表すプロパティの宣言型に代入できません。expression.Type is not assignable to the declaring type of the property that property represents.

注釈

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

プロパティを表す場合propertystatic(Shared Visual Basic で)、expressionできますnullします。If the property represented by property is static (Shared in Visual Basic), expression can be null.

Property(Expression, MethodInfo) Property(Expression, MethodInfo) Property(Expression, MethodInfo)

プロパティ アクセサー メソッドを使用することによるプロパティへのアクセスを表す MemberExpression を作成します。Creates a MemberExpression that represents accessing a property by using a property accessor method.

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

パラメーター

expression
Expression Expression Expression Expression

Expression プロパティを等しく設定する ExpressionAn Expression to set the Expression property equal to. 静的プロパティの場合は null を指定できます。This can be null for static properties.

propertyAccessor
MethodInfo MethodInfo MethodInfo MethodInfo

プロパティ アクセサー メソッドを表す MethodInfoThe MethodInfo that represents a property accessor method.

戻り値

MemberExpression と等しい NodeType プロパティ、MemberAccess に設定された Expression プロパティ、expression でアクセスされるプロパティを表す Member に設定された PropertyInfo プロパティを含む propertyAccessorA MemberExpression that has the NodeType property equal to MemberAccess, the Expression property set to expression and the Member property set to the PropertyInfo that represents the property accessed in propertyAccessor.

例外

propertyAccessornullです。propertyAccessor is null.

または-or- propertyAccessor が表すメソッドは static (Visual Basic では Shared) ではなく、expressionnull です。The method that propertyAccessor represents is not static (Shared in Visual Basic) and expression is null.

expression.Type は、propertyAccessor の表すメソッドの宣言型に割り当てることができません。expression.Type is not assignable to the declaring type of the method represented by propertyAccessor.

または-or- propertyAccessor が表すメソッドは、プロパティ アクセサー メソッドではありません。The method that propertyAccessor represents is not a property accessor method.

注釈

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

によって表されるメソッドの場合propertyAccessorstatic(Shared Visual basic)、expressionできるnullします。If the method represented by propertyAccessor is static (Shared in Visual Basic), expression can be null.

Property(Expression, String) Property(Expression, String) Property(Expression, String)

プロパティへのアクセスを表す MemberExpression を作成します。Creates a MemberExpression that represents accessing a property.

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

パラメーター

expression
Expression Expression Expression Expression

ExpressionType という名前のプロパティが含まれている propertyNameAn Expression whose Type contains a property named propertyName. 静的プロパティの場合は null を指定できます。This can be null for static properties.

propertyName
String String String String

アクセスするプロパティの名前。The name of a property to be accessed.

戻り値

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

例外

expression または propertyNamenull です。expression or propertyName is null.

propertyName.Type またはその基本型では expression という名前のプロパティが定義されていません。No property named propertyName is defined in expression.Type or its base types.

次の例では、プロパティへのアクセスを表す式を作成する方法を示します。The following example shows how to create an expression that represents accessing a property.

// 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

注釈

TypeプロパティMemberExpressionと等しい、PropertyTypeのプロパティ、PropertyInfoにより示されるプロパティを表すpropertyNameします。The Type property of the resulting MemberExpression is equal to the PropertyType property of the PropertyInfo that represents the property denoted by propertyName.

このメソッドは検索expressionします。型とその基本型の名前を持つプロパティpropertyNameします。This method searches expression.Type and its base types for a property that has the name propertyName. 非パブリック プロパティを優先順位のパブリック プロパティが指定されます。Public properties are given preference over non-public properties. 一致するプロパティが見つかった場合、このメソッドに渡しますexpressionPropertyInfoにそのプロパティを表すPropertyします。If a matching property is found, this method passes expression and the PropertyInfo that represents that property to Property.

適用対象