Expression.PropertyOrField(Expression, String) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Cria um MemberExpression que representa o acesso a uma propriedade ou campo.
public:
static System::Linq::Expressions::MemberExpression ^ PropertyOrField(System::Linq::Expressions::Expression ^ expression, System::String ^ propertyOrFieldName);
public static System.Linq.Expressions.MemberExpression PropertyOrField (System.Linq.Expressions.Expression expression, string propertyOrFieldName);
static member PropertyOrField : System.Linq.Expressions.Expression * string -> System.Linq.Expressions.MemberExpression
Public Shared Function PropertyOrField (expression As Expression, propertyOrFieldName As String) As MemberExpression
Parâmetros
- expression
- Expression
Um Expression cujo Type contém uma propriedade ou campo chamado propertyOrFieldName
.
- propertyOrFieldName
- String
O nome de uma propriedade ou campo a ser acessado.
Retornos
Um MemberExpression que tem a propriedade NodeType igual a MemberAccess, a propriedade Expression definida como expression
e a propriedade Member definida como o PropertyInfo ou FieldInfo que representa a propriedade indicada por propertyOrFieldName
.
Exceções
expression
ou propertyOrFieldName
é null
.
Nenhuma propriedade nomeado propertyOrFieldName
é definido em expression
.Type ou em seus tipos base.
Exemplos
O exemplo a seguir mostra como criar uma expressão que representa o acesso a uma propriedade ou campo.
// Add the following directive to your file:
// using System.Linq.Expressions;
class TestClass
{
public int sample { get; set; }
}
static void TestPropertyOrField()
{
TestClass obj = new TestClass();
obj.sample = 40;
// This expression represents accessing a property or field.
// For static properties or fields, the first parameter must be null.
Expression memberExpr = Expression.PropertyOrField(
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>>(memberExpr).Compile()());
}
// This code example produces the following output:
//
// 40
' Add the following directive to your file:
' Imports System.Linq.Expressions
Class TestClass
Public Property Sample As Integer
End Class
Sub TestPropertyOrField()
Dim obj As New TestClass()
obj.Sample = 40
' This expression represents accessing a property or field.
' For static properties or fields, the first parameter must be Nothing.
Dim memberExpr As Expression = Expression.PropertyOrField(
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))(memberExpr).Compile()())
End Sub
' This code example produces the following output:
'
' 40
Comentários
A Type propriedade do resultante MemberExpression é igual às PropertyType propriedades ou FieldType do PropertyInfo ou FieldInfo, respectivamente, que representa a propriedade ou o campo indicado por propertyOrFieldName
.
Esse método pesquisa expression
. Digite e seus tipos base para uma propriedade ou campo de instância que tenha o nome propertyOrFieldName
. Não há suporte para propriedades ou campos estáticos. Propriedades e campos públicos recebem preferência sobre propriedades e campos não públicos. Além disso, as propriedades recebem preferência sobre campos. Se uma propriedade ou campo correspondente for encontrado, esse método passará expression
e o PropertyInfo ou FieldInfo que representa essa propriedade ou campo para Property ou Field, respectivamente.