Expression.New 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
创建一个 NewExpression。
重载
New(ConstructorInfo) |
创建一个表示调用不带自变量的指定构造函数的 NewExpression。 |
New(Type) |
创建一个表示调用指定类型的无参数构造函数的 NewExpression。 |
New(ConstructorInfo, IEnumerable<Expression>) |
创建一个表示调用带指定参数的指定构造函数的 NewExpression。 |
New(ConstructorInfo, Expression[]) |
创建一个表示调用带指定参数的指定构造函数的 NewExpression。 |
New(ConstructorInfo, IEnumerable<Expression>, IEnumerable<MemberInfo>) |
创建一个表示调用带指定参数的指定构造函数的 NewExpression。 其中指定了访问构造函数初始化的字段的成员。 |
New(ConstructorInfo, IEnumerable<Expression>, MemberInfo[]) |
创建一个表示调用带指定参数的指定构造函数的 NewExpression。 将访问构造函数初始化字段的成员指定为数组。 |
New(ConstructorInfo)
- Source:
- NewExpression.cs
- Source:
- NewExpression.cs
- Source:
- NewExpression.cs
创建一个表示调用不带自变量的指定构造函数的 NewExpression。
public:
static System::Linq::Expressions::NewExpression ^ New(System::Reflection::ConstructorInfo ^ constructor);
public static System.Linq.Expressions.NewExpression New (System.Reflection.ConstructorInfo constructor);
static member New : System.Reflection.ConstructorInfo -> System.Linq.Expressions.NewExpression
Public Shared Function New (constructor As ConstructorInfo) As NewExpression
参数
- constructor
- ConstructorInfo
要将 ConstructorInfo 属性设置为与其相等的 Constructor。
返回
一个 NewExpression,其 NodeType 属性等于 New,并且其 Constructor 属性设置为指定值。
例外
constructor
为 null
。
constructor
表示的构造函数至少具有一个参数。
注解
Arguments生成的 NewExpression 的 和 Members 属性为空集合。 属性 Type 表示由 constructor
表示的构造函数的声明类型。
适用于
New(Type)
- Source:
- NewExpression.cs
- Source:
- NewExpression.cs
- Source:
- NewExpression.cs
创建一个表示调用指定类型的无参数构造函数的 NewExpression。
public:
static System::Linq::Expressions::NewExpression ^ New(Type ^ type);
public static System.Linq.Expressions.NewExpression New (Type type);
static member New : Type -> System.Linq.Expressions.NewExpression
Public Shared Function New (type As Type) As NewExpression
参数
返回
一个 NewExpression,其 NodeType 属性等于 New,并且其 Constructor 属性设置为 ConstructorInfo,这表示不带指定类型的参数的构造函数。
例外
type
为 null
。
type
所表示的类型不具有无参数构造函数。
示例
下面的示例演示如何使用 New(Type) 方法创建表示 NewExpression 通过调用不带参数的构造函数构造字典对象的新实例的 。
// Create a NewExpression that represents constructing
// a new instance of Dictionary<int, string>.
System.Linq.Expressions.NewExpression newDictionaryExpression =
System.Linq.Expressions.Expression.New(typeof(Dictionary<int, string>));
Console.WriteLine(newDictionaryExpression.ToString());
// This code produces the following output:
//
// new Dictionary`2()
' Create a NewExpression that represents constructing
' a new instance of Dictionary(Of Integer, String).
Dim newDictionaryExpression As System.Linq.Expressions.NewExpression = _
System.Linq.Expressions.Expression.[New]( _
Type.GetType("System.Collections.Generic.Dictionary`2[System.Int32, System.String]"))
Console.WriteLine(newDictionaryExpression.ToString())
' This code produces the following output:
'
' new Dictionary`2()
注解
参数 type
必须表示具有不带参数的构造函数的类型。
Arguments生成的 NewExpression 的 和 Members 属性为空集合。 属性 Type 等于 type
。
适用于
New(ConstructorInfo, IEnumerable<Expression>)
- Source:
- NewExpression.cs
- Source:
- NewExpression.cs
- Source:
- NewExpression.cs
创建一个表示调用带指定参数的指定构造函数的 NewExpression。
public:
static System::Linq::Expressions::NewExpression ^ New(System::Reflection::ConstructorInfo ^ constructor, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.NewExpression New (System.Reflection.ConstructorInfo constructor, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> arguments);
public static System.Linq.Expressions.NewExpression New (System.Reflection.ConstructorInfo constructor, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression>? arguments);
static member New : System.Reflection.ConstructorInfo * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.NewExpression
Public Shared Function New (constructor As ConstructorInfo, arguments As IEnumerable(Of Expression)) As NewExpression
参数
- constructor
- ConstructorInfo
要将 ConstructorInfo 属性设置为与其相等的 Constructor。
- arguments
- IEnumerable<Expression>
一个 IEnumerable<T>,包含用来填充 Expression 集合的 Arguments 对象。
返回
一个 NewExpression,其 NodeType 属性等于 New,并且其 Constructor 和 Arguments 属性设置为指定值。
例外
arguments
参数包含的元素数量与 constructor
所表示的构造函数的参数数量不同。
- 或 -
arguments
的元素的 Type 属性不能赋给 constructor
表示的构造函数的相应参数类型。
注解
参数 arguments
包含的元素数必须与 表示 constructor
的构造函数的参数数相同。 如果 arguments
为 null
,则将其视为空,生成的 ArgumentsNewExpression 的 属性为空集合。
Type生成的 NewExpression 的 属性表示 由 constructor
表示的构造函数的声明类型。 属性 Members 是一个空集合。
适用于
New(ConstructorInfo, Expression[])
- Source:
- NewExpression.cs
- Source:
- NewExpression.cs
- Source:
- NewExpression.cs
创建一个表示调用带指定参数的指定构造函数的 NewExpression。
public:
static System::Linq::Expressions::NewExpression ^ New(System::Reflection::ConstructorInfo ^ constructor, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.NewExpression New (System.Reflection.ConstructorInfo constructor, params System.Linq.Expressions.Expression[] arguments);
public static System.Linq.Expressions.NewExpression New (System.Reflection.ConstructorInfo constructor, params System.Linq.Expressions.Expression[]? arguments);
static member New : System.Reflection.ConstructorInfo * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.NewExpression
Public Shared Function New (constructor As ConstructorInfo, ParamArray arguments As Expression()) As NewExpression
参数
- constructor
- ConstructorInfo
要将 ConstructorInfo 属性设置为与其相等的 Constructor。
- arguments
- Expression[]
用于填充 Expression 集合的 Arguments 对象的数组。
返回
一个 NewExpression,其 NodeType 属性等于 New,并且其 Constructor 和 Arguments 属性设置为指定值。
例外
arguments
的长度与 constructor
表示的构造函数的参数数目不符。
- 或 -
arguments
的元素的 Type 属性不能赋给 constructor
表示的构造函数的相应参数类型。
注解
参数 arguments
包含的元素数必须与 表示 constructor
的构造函数的参数数相同。 如果 arguments
为 null
,则将其视为空,生成的 ArgumentsNewExpression 的 属性为空集合。
Type生成的 NewExpression 的 属性表示 由 constructor
表示的构造函数的声明类型。 属性 Members 是一个空集合。
适用于
New(ConstructorInfo, IEnumerable<Expression>, IEnumerable<MemberInfo>)
- Source:
- NewExpression.cs
- Source:
- NewExpression.cs
- Source:
- NewExpression.cs
创建一个表示调用带指定参数的指定构造函数的 NewExpression。 其中指定了访问构造函数初始化的字段的成员。
public:
static System::Linq::Expressions::NewExpression ^ New(System::Reflection::ConstructorInfo ^ constructor, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ arguments, System::Collections::Generic::IEnumerable<System::Reflection::MemberInfo ^> ^ members);
public static System.Linq.Expressions.NewExpression New (System.Reflection.ConstructorInfo constructor, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> arguments, System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> members);
public static System.Linq.Expressions.NewExpression New (System.Reflection.ConstructorInfo constructor, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression>? arguments, System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo>? members);
static member New : System.Reflection.ConstructorInfo * seq<System.Linq.Expressions.Expression> * seq<System.Reflection.MemberInfo> -> System.Linq.Expressions.NewExpression
Public Shared Function New (constructor As ConstructorInfo, arguments As IEnumerable(Of Expression), members As IEnumerable(Of MemberInfo)) As NewExpression
参数
- constructor
- ConstructorInfo
要将 ConstructorInfo 属性设置为与其相等的 Constructor。
- arguments
- IEnumerable<Expression>
一个 IEnumerable<T>,包含用来填充 Expression 集合的 Arguments 对象。
- members
- IEnumerable<MemberInfo>
一个 IEnumerable<T>,包含用来填充 MemberInfo 集合的 Members 对象。
返回
一个 NewExpression,其 NodeType 属性等于 New,并且其 Constructor、Arguments 和 Members 属性设置为指定值。
例外
arguments
参数包含的元素数量与 constructor
所表示的构造函数的参数数量不同。
- 或 -
arguments
的元素的 Type 属性不能赋给 constructor
表示的构造函数的相应参数类型。
- 或 -
members
参数没有包含与 arguments
相同数量的元素。
- 或 -
arguments
的元素具有 Type 属性,该属性表示不能赋给 members
的相应元素所表示的成员类型的类型。
注解
参数 arguments
包含的元素数必须与 表示 constructor
的构造函数的参数数相同。 如果 arguments
为 null
,则将其视为空,生成的 ArgumentsNewExpression 的 属性为空集合。
如果 members
为 null
,则 Members 生成的 NewExpression 的 属性为空集合。 如果 members
不是 null
,则它的元素 arguments
数必须与 相同,并且每个元素不得为 null
。 的每个members
元素必须是 ,PropertyInfoFieldInfo或 MethodInfo ,它表示 由 表示constructor
的构造函数的声明类型上的实例成员。 如果它表示属性,则属性必须具有 get
访问器。 的每个元素的 对应元素arguments
必须具有一个 Type 属性,该属性表示可分配给元素表示members
的成员类型members
的类型。
Type生成的 NewExpression 的 属性表示 的构造函数constructor
的声明类型。
适用于
New(ConstructorInfo, IEnumerable<Expression>, MemberInfo[])
- Source:
- NewExpression.cs
- Source:
- NewExpression.cs
- Source:
- NewExpression.cs
创建一个表示调用带指定参数的指定构造函数的 NewExpression。 将访问构造函数初始化字段的成员指定为数组。
public:
static System::Linq::Expressions::NewExpression ^ New(System::Reflection::ConstructorInfo ^ constructor, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ arguments, ... cli::array <System::Reflection::MemberInfo ^> ^ members);
public static System.Linq.Expressions.NewExpression New (System.Reflection.ConstructorInfo constructor, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> arguments, params System.Reflection.MemberInfo[] members);
public static System.Linq.Expressions.NewExpression New (System.Reflection.ConstructorInfo constructor, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression>? arguments, params System.Reflection.MemberInfo[]? members);
static member New : System.Reflection.ConstructorInfo * seq<System.Linq.Expressions.Expression> * System.Reflection.MemberInfo[] -> System.Linq.Expressions.NewExpression
Public Shared Function New (constructor As ConstructorInfo, arguments As IEnumerable(Of Expression), ParamArray members As MemberInfo()) As NewExpression
参数
- constructor
- ConstructorInfo
要将 ConstructorInfo 属性设置为与其相等的 Constructor。
- arguments
- IEnumerable<Expression>
一个 IEnumerable<T>,包含用来填充 Expression 集合的 Arguments 对象。
- members
- MemberInfo[]
用于填充 MemberInfo 集合的 Members 对象的数组。
返回
一个 NewExpression,其 NodeType 属性等于 New,并且其 Constructor、Arguments 和 Members 属性设置为指定值。
例外
arguments
参数包含的元素数量与 constructor
所表示的构造函数的参数数量不同。
- 或 -
arguments
的元素的 Type 属性不能赋给 constructor
表示的构造函数的相应参数类型。
- 或 -
members
参数没有包含与 arguments
相同数量的元素。
- 或 -
arguments
的元素具有 Type 属性,该属性表示不能赋给 members
的相应元素所表示的成员类型的类型。
注解
参数 arguments
包含的元素数必须与 表示 constructor
的构造函数的参数数相同。 如果 arguments
为 null
,则将其视为空,生成的 ArgumentsNewExpression 的 属性为空集合。
如果 members
为 null
,则 Members 生成的 NewExpression 的 属性为空集合。 如果 members
不是 null
,则它的元素 arguments
数必须与 相同,并且每个元素不得为 null
。 的每个members
元素必须是 ,PropertyInfoFieldInfo或 MethodInfo ,它表示 由 表示constructor
的构造函数的声明类型上的实例成员。 如果它表示属性,则属性必须能够检索关联字段的值。 的每个元素的 对应元素arguments
必须具有一个 Type 属性,该属性表示可分配给元素表示members
的成员类型members
的类型。
Type生成的 NewExpression 的 属性表示 的构造函数constructor
的声明类型。