Expression.PropertyOrField(Expression, String) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.