Поделиться через


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

Объект, которому принадлежит это свойство. Если свойство статическое или общее, оно должно иметь значение 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

Объект, которому принадлежит это свойство. Если свойство статическое или общее, оно должно иметь значение 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

Объект, которому принадлежит это свойство. Если свойство статическое или общее, оно должно иметь значение 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, для которых заданы указанные значения.

Исключения

property имеет значение null.

-или-

Свойство, которое представляет property, не является static (Shared в Visual Basic), и expression равно null.

Тип expression.Type не может быть назначен объявляемому типу, который представляет property.

Комментарии

Свойство Type результирующего MemberExpression объекта равно свойству PropertyType объекта Member.

Если свойство, представленное параметром 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.

Исключения

propertyAccessor имеет значение null.

-или-

Метод, который представляет propertyAccessor, не является static (Shared в Visual Basic), и expression равно null.

expression.Type не может быть назначен объявляющему типу метода, представленного свойством propertyAccessor.

-или-

Метод, который представляет propertyAccessor, не является методом доступа к свойству.

Комментарии

Свойство Type результирующего MemberExpression объекта равно свойству PropertyType объекта Member.

Если метод, представленный параметром propertyAccessor , имеет значение static (Shared в 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

Expression, где Type содержит свойство с именем propertyName. Может принимать значение null для статических свойств.

propertyName
String

Имя свойства для доступа.

Возвращаемое значение

Выражение MemberExpression, имеющее свойство NodeType, равное MemberAccess, свойство Expression, для которого задано значение expression, и свойство Member, для которого задано значение PropertyInfo, представляющее свойство, обозначенное с помощью параметра propertyName.

Исключения

Параметр expression или propertyName имеет значение null.

Не определено свойство с именем propertyName для типа expression.Type или его базовых типов.

Примеры

В следующем примере показано, как создать выражение, представляющее доступ к свойству.

// 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 объекта равно свойству PropertyTypePropertyInfo объекта , представляющего свойство , обозначенное .propertyName

Этот метод выполняет поиск expression. Тип и его базовые типы для свойства с именем propertyName. Общедоступным свойствам отдается предпочтение по сравнению с не открытыми свойствами. При обнаружении соответствующего свойства этот метод передает expression и PropertyInfo , представляющий это свойство, в Property.

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