Expression.PropertyOrField(Expression, String) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir MemberExpression özelliğe veya alana erişimi temsil eden bir oluşturur.
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
Parametreler
- expression
- Expression
ExpressionType adlı propertyOrFieldName
bir özellik veya alan içeren bir.
- propertyOrFieldName
- String
Erişilecek özellik veya alanın adı.
Döndürülenler
özelliğine eşit olan, Expression özelliği olarak expression
ayarlanmış, Member özelliği ise ile propertyOrFieldName
belirtilen özellik veya alanı temsil eden veya FieldInfo olarak ayarlanmıştırPropertyInfo.NodeTypeMemberAccessMemberExpression
Özel durumlar
expression
veya propertyOrFieldName
şeklindedir null
.
içinde expression
adlı propertyOrFieldName
bir özellik veya alan tanımlanmadı. Tür veya temel türleri.
Örnekler
Aşağıdaki örnekte, bir özelliğe veya alana erişimi temsil eden bir ifadenin nasıl oluşturulacağı gösterilmektedir.
// 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
Açıklamalar
Sonuçta Type elde edilen MemberExpression özelliği sırasıyla veya FieldType ile belirtilen özelliği veya alanı temsil eden veya özelliklerine PropertyInfoFieldInfopropertyOrFieldName
eşittirPropertyType.
Bu yöntem arar expression
. adına propertyOrFieldName
sahip bir örnek özelliği veya alanı için türü ve temel türleri. Statik özellikler veya alanlar desteklenmez. Ortak özellikler ve alanlar genel olmayan özelliklere ve alanlara göre tercih edilir. Ayrıca, özelliklere alanlara göre tercih edilir. Eşleşen bir özellik veya alan bulunursa, bu yöntem ve FieldInfoPropertyInfo özelliğini veya alanını Property sırasıyla veya Fieldöğesine geçirirexpression
.