Bagikan melalui


Expression.PropertyOrField(Expression, String) Metode

Definisi

MemberExpression Membuat yang mewakili mengakses properti atau bidang.

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

Parameter

expression
Expression

Type Yang Expression berisi properti atau bidang bernama propertyOrFieldName.

propertyOrFieldName
String

Nama properti atau bidang yang akan diakses.

Mengembalikan

MemberExpression yang memiliki NodeType properti yang sama dengan MemberAccess, Expression properti diatur ke expression, dan Member properti diatur ke PropertyInfo atau FieldInfo yang mewakili properti atau bidang yang ditandai oleh propertyOrFieldName.

Pengecualian

expression atau propertyOrFieldName adalah null.

Tidak ada properti atau bidang bernama propertyOrFieldName yang didefinisikan dalam expression. Jenis atau jenis dasarnya.

Contoh

Contoh berikut menunjukkan cara membuat ekspresi yang mewakili mengakses properti atau bidang.

// 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

Keterangan

Properti Type dari yang dihasilkan MemberExpression sama dengan PropertyType properti PropertyInfo atau FieldType dari atau FieldInfo, masing-masing, yang mewakili properti atau bidang yang ditandai oleh propertyOrFieldName.

Metode ini mencari expression. Jenis dan jenis dasarnya untuk properti instans atau bidang yang memiliki nama propertyOrFieldName. Properti atau bidang statis tidak didukung. Properti dan bidang publik diberikan preferensi atas properti dan bidang non-publik. Selain itu, properti diberikan preferensi atas bidang. Jika properti atau bidang yang cocok ditemukan, metode ini meneruskan expression dan PropertyInfo atau FieldInfo yang mewakili properti atau bidang tersebut ke Property atau Field, masing-masing.

Berlaku untuk