Expression.PropertyOrField(Expression, String) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
속성 또는 필드에 대한 액세스를 나타내는 MemberExpression을 만듭니다.
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
매개 변수
- expression
- Expression
Expression에 이름이 Type인 속성 또는 필드가 포함된 propertyOrFieldName
입니다.
- propertyOrFieldName
- String
액세스할 속성 또는 필드의 이름입니다.
반환
MemberExpression 속성이 NodeType이고 MemberAccess 속성이 Expression으로 설정되고 expression
속성이 Member이 가리키는 속성 또는 필드를 나타내는 PropertyInfo 또는 FieldInfo로 설정된 propertyOrFieldName
입니다.
예외
expression
또는 propertyOrFieldName
가 null
인 경우
propertyOrFieldName
.Type 또는 해당 기본 형식에 이름이 expression
인 속성 또는 필드가 정의되지 않은 경우
예제
다음 예제에서는 속성 또는 필드에 액세스를 나타내는 식을 만드는 방법을 보여 줍니다.
// 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
설명
결과 MemberExpression 의 속성은 Type 또는 FieldInfo의 PropertyInfo 또는 FieldType 속성과 같 PropertyType 으며, 각각 으로 표시된 속성 또는 필드를 propertyOrFieldName
나타냅니다.
이 메서드는 를 검색expression
합니다. 이름이 propertyOrFieldName
인 instance 속성 또는 필드에 대한 및 해당 기본 형식을 입력합니다. 정적 속성 또는 필드는 지원되지 않습니다. 공용 속성 및 필드는 공용이 아닌 속성 및 필드에 대한 기본 설정이 제공됩니다. 또한 속성에는 필드보다 기본 설정이 지정됩니다. 일치하는 속성 또는 필드가 발견되면 이 메서드는 해당 속성 또는 필드를 Property 나타내는 및 PropertyInfo 를 FieldInfo 각각 또는 Field에 전달 expression
합니다.
적용 대상
.NET