Expression.PropertyOrField(Expression, String) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee maakt u een MemberExpression die toegang geeft tot een eigenschap of veld.
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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")]
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
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")>]
static member PropertyOrField : System.Linq.Expressions.Expression * string -> System.Linq.Expressions.MemberExpression
Public Shared Function PropertyOrField (expression As Expression, propertyOrFieldName As String) As MemberExpression
Parameters
- expression
- Expression
Een Expression met Type een eigenschap of veld met de naam propertyOrFieldName.
- propertyOrFieldName
- String
De naam van een eigenschap of veld dat moet worden geopend.
Retouren
Een MemberExpression met de NodeType eigenschap gelijk aan MemberAccess, de Expression eigenschap ingesteld op expressionen de Member eigenschap ingesteld op de PropertyInfo of FieldInfo die de eigenschap of het veld vertegenwoordigt dat wordt aangeduid door propertyOrFieldName.
- Kenmerken
Uitzonderingen
expression of propertyOrFieldName is null.
Er is geen eigenschap of veld met de naam propertyOrFieldName gedefinieerd in expression. Typ of de basistypen.
Voorbeelden
In het volgende voorbeeld ziet u hoe u een expressie maakt die toegang geeft tot een eigenschap of veld.
// 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
Opmerkingen
De Type eigenschap van het resulterende MemberExpression is gelijk aan de PropertyType of FieldType eigenschappen van de PropertyInfo of FieldInfo, respectievelijk, die de eigenschap of het veld vertegenwoordigt dat wordt aangeduid door propertyOrFieldName.
Met deze methode wordt gezocht expression. Typ en de basistypen voor een exemplaareigenschap of -veld met de naam propertyOrFieldName. Statische eigenschappen of velden worden niet ondersteund. Openbare eigenschappen en velden krijgen voorkeur ten opzichte van niet-openbare eigenschappen en velden. Eigenschappen krijgen ook voorkeur voor velden. Als er een overeenkomende eigenschap of een overeenkomend veld wordt gevonden, geeft expression deze methode door en geeft PropertyInfoFieldInfo deze eigenschap of het veld Property aan of Field, respectievelijk.