Expression.Field Method (Expression, String)
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Creates a MemberExpression that represents accessing a field given the name of the field.
Assembly: System.Core (in System.Core.dll)
'Declaration Public Shared Function Field ( _ expression As Expression, _ fieldName As String _ ) As MemberExpression
Parameters
- expression
- Type: System.Linq.Expressions.Expression
An Expression whose Type contains a field named fieldName. This can be null for static fields.
- fieldName
- Type: System.String
The name of a field to be accessed.
Return Value
Type: System.Linq.Expressions.MemberExpressionA MemberExpression that has the NodeType property equal to MemberAccess, the Expression property set to expression, and the Member property set to the FieldInfo that represents the field denoted by fieldName.
| Exception | Condition |
|---|---|
| ArgumentNullException | expression or fieldName is Nothing. |
| ArgumentException | No field named fieldName is defined in expression.Type or its base types. |
The Type property of the resulting MemberExpression is equal to the FieldType property of the FieldInfo that represents the field denoted by fieldName.
This method searches expression.Type and its base types for a field that has the name fieldName. Public fields are given preference over non-public fields. If a matching field is found, this method passes expression and the FieldInfo that represents that field to Field.
The following code example shows how to create an expression that represents accessing a field.
' 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. outputBlock.Text &= Expression.Lambda(Of Func(Of Integer))(fieldExpr).Compile()() & vbCrLf End Sub ' This code example produces the following output: ' ' 40