Expression.PropertyOrField(Expression, String) Método
Definição
Cria um MemberExpression que representa o acesso a uma propriedade ou campo.Creates a MemberExpression that represents accessing a property or field.
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.An Expression whose Type contains a property or field named propertyOrFieldName.
- propertyOrFieldName
- String
O nome de uma propriedade ou campo a ser acessado.The name of a property or field to be accessed.
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.A MemberExpression that has the NodeType property equal to MemberAccess, the Expression property set to expression, and the Member property set to the PropertyInfo or FieldInfo that represents the property or field denoted by propertyOrFieldName.
Exceções
expression ou propertyOrFieldName é null.expression or propertyOrFieldName is null.
Nenhuma propriedade nomeado propertyOrFieldName é definido em expression.Type ou em seus tipos base.No property or field named propertyOrFieldName is defined in expression.Type or its base types.
Exemplos
O exemplo a seguir mostra como criar uma expressão que representa o acesso a uma propriedade ou campo.The following example shows how to create an expression that represents accessing a property or field.
// 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 FieldType Propriedades ou do PropertyInfo ou FieldInfo , respectivamente, que representa a propriedade ou o campo indicado pelo propertyOrFieldName .The Type property of the resulting MemberExpression is equal to the PropertyType or FieldType properties of the PropertyInfo or FieldInfo, respectively, that represents the property or field denoted by propertyOrFieldName.
Esse método pesquisa expression . Digite e seus tipos base para uma propriedade de instância ou campo que tenha o nome propertyOrFieldName .This method searches expression.Type and its base types for an instance property or field that has the name propertyOrFieldName. Não há suporte para propriedades ou campos estáticos.Static properties or fields are not supported. As propriedades públicas e os campos recebem preferência sobre campos e propriedades não públicas.Public properties and fields are given preference over non-public properties and fields. Além disso, as propriedades recebem preferência sobre os campos.Also, properties are given preference over fields. Se uma propriedade ou campo correspondente for encontrado, esse método passará expression e o PropertyInfo ou FieldInfo que representará essa propriedade ou campo como Property ou Field , respectivamente.If a matching property or field is found, this method passes expression and the PropertyInfo or FieldInfo that represents that property or field to Property or Field, respectively.