Expression.Field 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
创建一个表示访问字段的字段 MemberExpression 。
重载
| 名称 | 说明 |
|---|---|
| Field(Expression, FieldInfo) |
创建一个表示访问字段的字段 MemberExpression 。 |
| Field(Expression, String) |
创建一个 MemberExpression 表示访问给定字段名称的字段。 |
| Field(Expression, Type, String) |
创建一个表示访问字段的字段 MemberExpression 。 |
Field(Expression, FieldInfo)
- Source:
- MemberExpression.cs
- Source:
- MemberExpression.cs
- Source:
- MemberExpression.cs
- Source:
- MemberExpression.cs
- Source:
- MemberExpression.cs
创建一个表示访问字段的字段 MemberExpression 。
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);
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
参数
- expression
- Expression
要设置的属性Expression等于的一个Expression。 对于 static (Shared 在 Visual Basic 中), expression 必须是 null。
返回
一个MemberExpression属性NodeType等于MemberAccess和ExpressionMember属性设置为指定值。
例外
field 是 null。
-或-
表示的field字段不在 static Visual Basic 中(Shared在 Visual Basic 中expression)。null
expression.类型不能分配给由 field该字段表示的声明类型。
注解
Type生成的MemberExpression属性等于 FieldType ..field
适用于
Field(Expression, String)
- Source:
- MemberExpression.cs
- Source:
- MemberExpression.cs
- Source:
- MemberExpression.cs
- Source:
- MemberExpression.cs
- Source:
- MemberExpression.cs
创建一个 MemberExpression 表示访问给定字段名称的字段。
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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")]
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
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")>]
static member Field : System.Linq.Expressions.Expression * string -> System.Linq.Expressions.MemberExpression
Public Shared Function Field (expression As Expression, fieldName As String) As MemberExpression
参数
- expression
- Expression
一个 Expression 包含 Type 名为 . fieldName. 的字段。 对于静态字段,这可以为 null。
- fieldName
- String
要访问的字段的名称。
返回
一个属性等于、属性设置为
- 属性
例外
expression 或 fieldName 为 null.
未在 . 中expression定义命名fieldName的字段。类型或其基类型。
示例
下面的代码示例演示如何创建表示访问字段的表达式。
// 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
注解
Type生成的MemberExpression属性等于FieldType表示所fieldName表示字段的属性FieldInfo。
此方法搜索 expression。具有名称 fieldName的字段的类型及其基类型。 公共字段优先于非公共字段。 如果找到匹配的字段,此方法将传递expression并FieldInfo表示该字段。Field
适用于
Field(Expression, Type, String)
- Source:
- MemberExpression.cs
- Source:
- MemberExpression.cs
- Source:
- MemberExpression.cs
- Source:
- MemberExpression.cs
- Source:
- MemberExpression.cs
创建一个表示访问字段的字段 MemberExpression 。
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);
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
参数
- expression
- Expression
字段的包含对象。 对于静态字段,这可以为 null。
- fieldName
- String
要访问的字段。
返回
创建的 MemberExpression。