Expression.PropertyOrField(Expression, String) Expression.PropertyOrField(Expression, String) Expression.PropertyOrField(Expression, String) Method

定義

プロパティまたはフィールドへのアクセスを表す MemberExpression を作成します。Creates a MemberExpression that represents accessing a property or field.

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

パラメーター

expression
Expression Expression Expression

ExpressionType という名前のプロパティまたはフィールドが含まれている propertyOrFieldNameAn Expression whose Type contains a property or field named propertyOrFieldName. 静的メンバーの場合は null を指定できます。This can be null for static members.

propertyOrFieldName
String String String

アクセスするプロパティまたはフィールドの名前。The name of a property or field to be accessed.

戻り値

MemberExpression と等しい NodeType プロパティ、MemberAccess に設定された Expression プロパティ、および expression によって示されるプロパティまたはフィールドを表す Member または PropertyInfo に設定された FieldInfo プロパティを含む propertyOrFieldNameA MemberExpression that has the NodeType property equal to MemberAccess, the Expression property set to expression, and the Member property set to the PropertyInfo or FieldInfo that represents the property or field denoted by propertyOrFieldName.

例外

expression または propertyOrFieldNamenull です。expression or propertyOrFieldName is null.

propertyOrFieldName.Type またはその基本型では expression という名前のプロパティまたはフィールドが定義されていません。No property or field named propertyOrFieldName is defined in expression.Type or its base types.

次の例では、プロパティまたはフィールドへのアクセスを表す式を作成する方法を示します。The following example shows how to create an expression that represents accessing a property or field.

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

注釈

TypeプロパティMemberExpressionと等しい、PropertyTypeまたはFieldTypeのプロパティ、PropertyInfoまたはFieldInfoをそれぞれプロパティにより示されるフィールドを表すpropertyOrFieldNameします。The Type property of the resulting MemberExpression is equal to the PropertyType or FieldType properties of the PropertyInfo or FieldInfo, respectively, that represents the property or field denoted by propertyOrFieldName.

このメソッドは検索expressionします。型とその基本型のプロパティまたはフィールドの名前を持つpropertyOrFieldNameします。This method searches expression.Type and its base types for a property or field that has the name propertyOrFieldName. パブリック プロパティおよびフィールドより優先非パブリック プロパティとフィールド。Public properties and fields are given preference over non-public properties and fields. また、プロパティ、フィールドに対する優先をして指定します。Also, properties are given preference over fields. このメソッドに渡す場合は、対応するプロパティまたはフィールドが見つかると、expressionPropertyInfoまたはFieldInfoそのプロパティまたはフィールドを表すPropertyまたはField、それぞれします。If a matching property or field is found, this method passes expression and the PropertyInfo or FieldInfo that represents that property or field to Property or Field, respectively.

適用対象