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.NewExpressionPublic 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.NewExpressionPublic 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.NewExpressionPublic 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.NewExpressionPublic 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.NewExpressionPublic 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.NewExpressionPublic 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的声明类型。