Expression.Field Método

Definição

Cria um MemberExpression que representa o acesso a um campo.

Sobrecargas

Name Description
Field(Expression, FieldInfo)

Cria um MemberExpression que representa o acesso a um campo.

Field(Expression, String)

Cria um MemberExpression que representa o acesso a um campo dado o nome do campo.

Field(Expression, Type, String)

Cria um MemberExpression que representa o acesso a um campo.

Field(Expression, FieldInfo)

Cria um MemberExpression que representa o acesso a um campo.

public:
 static System::Linq::Expressions::MemberExpression ^ Field(System::Linq::Expressions::Expression ^ expression, System::Reflection::FieldInfo ^ field);
public static System.Linq.Expressions.MemberExpression Field(System.Linq.Expressions.Expression expression, System.Reflection.FieldInfo field);
static member Field : System.Linq.Expressions.Expression * System.Reflection.FieldInfo -> System.Linq.Expressions.MemberExpression
Public Shared Function Field (expression As Expression, field As FieldInfo) As MemberExpression

Parâmetros

expression
Expression

E Expression para definir a Expression propriedade igual a . Para static (Shared em Visual Basic), expression deve ser null.

field
FieldInfo

O FieldInfo to define a Member propriedade igual a.

Devoluções

A MemberExpression que tem a NodeType propriedade igual a MemberAccess e as Expression propriedades e Member definidas com os valores especificados.

Exceções

field é null.

-ou-

O corpo representado por field não é static (Shared em Visual Basic) e expression é null.

expression. O tipo não é atribuível ao tipo declarante do corpo representado por field.

Observações

A Type propriedade do resultado MemberExpression é igual à FieldType propriedade de field.

Aplica-se a

Field(Expression, String)

Cria um MemberExpression que representa o acesso a um campo dado o nome do campo.

public:
 static System::Linq::Expressions::MemberExpression ^ Field(System::Linq::Expressions::Expression ^ expression, System::String ^ fieldName);
public static System.Linq.Expressions.MemberExpression Field(System.Linq.Expressions.Expression expression, string fieldName);
static member Field : System.Linq.Expressions.Expression * string -> System.Linq.Expressions.MemberExpression
Public Shared Function Field (expression As Expression, fieldName As String) As MemberExpression

Parâmetros

expression
Expression

Um cujo ExpressionType contém um corpo chamado fieldName. Isto pode ser nulo para campos estáticos.

fieldName
String

O nome de um campo a ser acedido.

Devoluções

A MemberExpression que tem a NodeType propriedade igual a MemberAccess, a Expression propriedade atribuída a expression, e a Member propriedade definida a FieldInfo , que representa o corpo denotado por fieldName.

Exceções

expression ou fieldName é null.

Nenhum corpo nomeado fieldName é definido em expression. Tipo ou os seus tipos base.

Exemplos

O exemplo de código seguinte mostra como criar uma expressão que representa o acesso a um campo.

// Add the following directive to your file:
// using System.Linq.Expressions;

class TestFieldClass
{
    int sample = 40;
}

static void TestField()
{
    TestFieldClass obj = new TestFieldClass();

    // This expression represents accessing a field.
    // For static fields, the first parameter must be null.
    Expression fieldExpr = Expression.Field(
        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>>(fieldExpr).Compile()());
}

// This code example produces the following output:
//
// 40
' Add the following directive to your file:
' Imports System.Linq.Expressions

Class TestFieldClass
    Dim sample As Integer = 40
End Class

Sub TestField()

    Dim obj As New TestFieldClass()

    ' This expression represents accessing a field.
    ' For static fields, the first parameter must be Nothing.
    Dim fieldExpr As Expression = Expression.Field(
          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))(fieldExpr).Compile()())
End Sub

' This code example produces the following output:
'
' 40

Observações

A Type propriedade do resultado MemberExpression é igual à FieldType propriedade do FieldInfo que representa o corpo denotado por fieldName.

Este método pesquisa expression. Type e os seus tipos base para um corpo que tem o nome fieldName. Campos públicos têm preferência sobre campos não públicos. Se for encontrado um campo correspondente, este método passa expression e o FieldInfo que representa esse campo para Field.

Aplica-se a

Field(Expression, Type, String)

Cria um MemberExpression que representa o acesso a um campo.

public:
 static System::Linq::Expressions::MemberExpression ^ Field(System::Linq::Expressions::Expression ^ expression, Type ^ type, System::String ^ fieldName);
public static System.Linq.Expressions.MemberExpression Field(System.Linq.Expressions.Expression expression, Type type, string fieldName);
static member Field : System.Linq.Expressions.Expression * Type * string -> System.Linq.Expressions.MemberExpression
Public Shared Function Field (expression As Expression, type As Type, fieldName As String) As MemberExpression

Parâmetros

expression
Expression

O objeto contendor do campo. Isto pode ser nulo para campos estáticos.

type
Type

O Type que contém o campo.

fieldName
String

O campo a aceder.

Devoluções

O criou MemberExpression.

Aplica-se a