Expression.PropertyOrField(Expression, String) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Crea un objeto MemberExpression que representa el acceso a una propiedad o un 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
Expression cuya propiedad Type contiene una propiedad o un campo denominado propertyOrFieldName
.
- propertyOrFieldName
- String
Nombre de una propiedad o un campo al que se va a obtener acceso.
Devoluciones
MemberExpression cuya propiedad NodeType es MemberAccess, cuya propiedad Expression se establece en expression
y cuya propiedad Member se establece en el objeto PropertyInfo o FieldInfo que representa la propiedad o el campo denotados por propertyOrFieldName
.
Excepciones
expression
o propertyOrFieldName
es null
.
No se ha definido ninguna propiedad o ningún campo denominado propertyOrFieldName
en expression
.Type o sus tipos base.
Ejemplos
En el ejemplo siguiente se muestra cómo crear una expresión que representa el acceso a una propiedad o 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
Comentarios
La Type propiedad del resultado MemberExpression es igual a las PropertyType propiedades o FieldType de PropertyInfo o FieldInfo, respectivamente, que representa la propiedad o el campo indicado por propertyOrFieldName
.
Este método busca en expression
. Escriba y sus tipos base para una propiedad o campo de instancia que tenga el nombre propertyOrFieldName
. No se admiten propiedades o campos estáticos. Las propiedades y campos públicos tienen preferencia sobre las propiedades y campos no públicos. Además, a las propiedades se les da preferencia sobre los campos. Si se encuentra una propiedad o campo coincidente, este método pasa expression
y o PropertyInfoFieldInfo que representa esa propiedad o campo a Property o Field, respectivamente.