Expression.Property Метод

Определение

Создает MemberExpression, представляющий доступ к свойству.Creates a MemberExpression that represents accessing a property.

Перегрузки

Property(Expression, String, Expression[])

Создает выражение IndexExpression, представляющее доступ к индексированному свойству.Creates an IndexExpression representing the access to an indexed property.

Property(Expression, PropertyInfo, Expression[])

Создает выражение IndexExpression, представляющее доступ к индексированному свойству.Creates an IndexExpression representing the access to an indexed property.

Property(Expression, PropertyInfo, IEnumerable<Expression>)

Создает выражение IndexExpression, представляющее доступ к индексированному свойству.Creates an IndexExpression representing the access to an indexed property.

Property(Expression, Type, String)

Создает выражение MemberExpression, представляющее доступ к свойству.Creates a MemberExpression accessing a property.

Property(Expression, PropertyInfo)

Создает MemberExpression, представляющий доступ к свойству.Creates a MemberExpression that represents accessing a property.

Property(Expression, MethodInfo)

Создает MemberExpression, который представляет доступ к свойству с помощью метода доступа свойства.Creates a MemberExpression that represents accessing a property by using a property accessor method.

Property(Expression, String)

Создает MemberExpression, представляющий доступ к свойству.Creates a MemberExpression that represents accessing a property.

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

Объект, которому принадлежит это свойство.The object to which the property belongs. Если свойство статическое или общее, оно должно иметь значение NULL.If the property is static/shared, it must be null.

propertyName
String

Имя индексатора.The name of the indexer.

arguments
Expression[]

Массив объектов Expression, используемых для индексации свойства.An array of Expression objects that are used to index the property.

Возвраты

Созданный IndexExpression.The created IndexExpression.

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

Объект, которому принадлежит это свойство.The object to which the property belongs. Если свойство статическое или общее, оно должно иметь значение NULL.If the property is static/shared, it must be null.

indexer
PropertyInfo

Объект PropertyInfo, представляющий индексируемое свойство.The PropertyInfo that represents the property to index.

arguments
Expression[]

Массив объектов Expression, используемых для индексации свойства.An array of Expression objects that are used to index the property.

Возвраты

Созданный IndexExpression.The created IndexExpression.

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

Объект, которому принадлежит это свойство.The object to which the property belongs. Если свойство статическое или общее, оно должно иметь значение NULL.If the property is static/shared, it must be null.

indexer
PropertyInfo

Объект PropertyInfo, представляющий индексируемое свойство.The PropertyInfo that represents the property to index.

arguments
IEnumerable<Expression>

IEnumerable<T> объектов Expression, используемых для индексации свойства.An IEnumerable<T> of Expression objects that are used to index the property.

Возвраты

Созданный IndexExpression.The created IndexExpression.

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

Объект, в котором содержится свойство.The containing object of the property. Для статических свойств допускается значение NULL.This can be null for static properties.

type
Type

Type, содержащий свойство.The Type that contains the property.

propertyName
String

Свойство для доступа.The property to be accessed.

Возвраты

Созданный MemberExpression.The created MemberExpression.

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.An Expression to set the Expression property equal to. Для статических свойств допускается значение NULL.This can be null for static properties.

property
PropertyInfo

Объект PropertyInfo, который следует задать в качестве значения свойства Member.The PropertyInfo to set the Member property equal to.

Возвраты

Выражение MemberExpression со свойствомNodeType, равным MemberAccess, и свойствами Expression и Member, для которых заданы указанные значения.A 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 (Shared в Visual Basic), и expression равно null.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.

Комментарии

Свойство результирующего MemberExpression объекта равно PropertyType свойству объекта Member. TypeThe Type property of the resulting MemberExpression is equal to the PropertyType property of Member.

Если свойство, представленное property параметромShared , имеет static значение ( expression в Visual Basic null), может иметь значение.If the property represented by property is static (Shared in Visual Basic), expression can be null.

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.An Expression to set the Expression property equal to. Для статических свойств допускается значение NULL.This can be null for static properties.

propertyAccessor
MethodInfo

MethodInfo, представляющий метод доступа к свойству.The MethodInfo that represents a property accessor method.

Возвраты

Выражение MemberExpression, содержащее свойство NodeType, равное MemberAccess, свойство Expression, для которого задано значение expression, и свойство Member, для которого задано значение PropertyInfo, представляющее свойство, к которому предоставляется доступ в propertyAccessor.A 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.

Исключения

Свойство propertyAccessor имеет значение null.propertyAccessor is null.

-или--or- Метод, который представляет propertyAccessor, не является static (Shared в Visual Basic), и expression равно null.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.

Комментарии

Свойство результирующего MemberExpression объекта равно PropertyType свойству объекта Member. TypeThe Type property of the resulting MemberExpression is equal to the PropertyType property of Member.

Если метод, представленный propertyAccessor параметромShared , имеет значение static ( expression в Visual Basic null), может иметь значение.If the method represented by propertyAccessor is static (Shared in Visual Basic), expression can be null.

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, где Type содержит свойство с именем propertyName.An Expression whose Type contains a property named propertyName. Может принимать значение null для статических свойств.This can be null for static properties.

propertyName
String

Имя свойства для доступа.The name of a property to be accessed.

Возвраты

Выражение MemberExpression, имеющее свойство NodeType, равное MemberAccess, свойство Expression, для которого задано значение expression, и свойство Member, для которого задано значение PropertyInfo, представляющее свойство, обозначенное с помощью параметра propertyName.A 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 для типа expression.Type или его базовых типов.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

Комментарии

MemberExpression PropertyType Свойство результирующего объекта равно PropertyInfo свойствуpropertyNameобъекта, представляющего свойство, обозначенное. TypeThe 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. Если найдено совпадающее свойство, этот метод передается expression PropertyInfo и, который представляет это свойство Property, в.If a matching property is found, this method passes expression and the PropertyInfo that represents that property to Property.

Применяется к