Expression.New Метод

Определение

Создает объект NewExpression.Creates a NewExpression.

Перегрузки

New(ConstructorInfo)

Создает NewExpression, представляющий вызов указанного конструктора без аргументов.Creates a NewExpression that represents calling the specified constructor that takes no arguments.

New(Type)

Создает NewExpression, представляющий вызов конструктора указанного типа без параметров.Creates a NewExpression that represents calling the parameterless constructor of the specified type.

New(ConstructorInfo, IEnumerable<Expression>)

Создает NewExpression, представляющий вызов указанного конструктора с указанными аргументами.Creates a NewExpression that represents calling the specified constructor with the specified arguments.

New(ConstructorInfo, Expression[])

Создает NewExpression, представляющий вызов указанного конструктора с указанными аргументами.Creates a NewExpression that represents calling the specified constructor with the specified arguments.

New(ConstructorInfo, IEnumerable<Expression>, IEnumerable<MemberInfo>)

Создает NewExpression, представляющий вызов указанного конструктора с указанными аргументами.Creates a NewExpression that represents calling the specified constructor with the specified arguments. Указаны элементы с доступом к полям, инициализированным конструктором.The members that access the constructor initialized fields are specified.

New(ConstructorInfo, IEnumerable<Expression>, MemberInfo[])

Создает NewExpression, представляющий вызов указанного конструктора с указанными аргументами.Creates a NewExpression that represents calling the specified constructor with the specified arguments. Указаны элементы с доступом к полям, инициализированным в качестве массива.The members that access the constructor initialized fields are specified as an array.

New(ConstructorInfo)

Создает NewExpression, представляющий вызов указанного конструктора без аргументов.Creates a NewExpression that represents calling the specified constructor that takes no arguments.

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.The ConstructorInfo to set the Constructor property equal to.

Возвраты

Выражение NewExpression со свойством NodeType, равным New, и свойством Constructor, для которого задано указанное значение.A NewExpression that has the NodeType property equal to New and the Constructor property set to the specified value.

Исключения

constructornull.constructor is null.

Конструктор, который представляет constructor, содержит не менее одного параметра.The constructor that constructor represents has at least one parameter.

Комментарии

Свойства Arguments и Members результирующегоNewExpression набора являются пустыми коллекциями.The Arguments and Members properties of the resulting NewExpression are empty collections. Свойство представляет объявляющий тип конструктора, constructorпредставленного. TypeThe Type property represents the declaring type of the constructor represented by constructor.

New(Type)

Создает NewExpression, представляющий вызов конструктора указанного типа без параметров.Creates a NewExpression that represents calling the parameterless constructor of the specified type.

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

Параметры

type
Type

Type содержит конструктор без аргументов.A Type that has a constructor that takes no arguments.

Возвраты

Выражение NewExpression, содержащее свойство NodeType, равное New, и свойство Constructor, для которого задано значение ConstructorInfo, представляющее конструктор указанного типа без параметров.A NewExpression that has the NodeType property equal to New and the Constructor property set to the ConstructorInfo that represents the constructor without parameters for the specified type.

Исключения

Свойство type имеет значение null.type is null.

Тип, который представляет type, не содержит конструктор без параметров.The type that type represents does not have a constructor without parameters.

Примеры

В следующем примере показано New(Type) NewExpression , как с помощью метода создать объект, который представляет создание нового экземпляра объекта Dictionary, вызвав конструктор без параметров.The following example demonstrates how to use the New(Type) method to create a NewExpression that represents constructing a new instance of a dictionary object by calling the constructor without parameters.

// 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 Параметр должен представлять тип, имеющий конструктор без параметров.The type parameter must represent a type that has a constructor without parameters.

Свойства Arguments и Members результирующегоNewExpression набора являются пустыми коллекциями.The Arguments and Members properties of the resulting NewExpression are empty collections. Type Свойствоtypeравно.The Type property is equal to type.

New(ConstructorInfo, IEnumerable<Expression>)

Создает NewExpression, представляющий вызов указанного конструктора с указанными аргументами.Creates a NewExpression that represents calling the specified constructor with the specified 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.The ConstructorInfo to set the Constructor property equal to.

arguments
IEnumerable<Expression>

IEnumerable<T>, содержащий все объекты Expression, используемые для заполнения коллекции Arguments.An IEnumerable<T> that contains Expression objects to use to populate the Arguments collection.

Возвраты

Выражение NewExpression со свойствомNodeType, равным New, и свойствами Constructor и Arguments, для которых заданы указанные значения.A NewExpression that has the NodeType property equal to New and the Constructor and Arguments properties set to the specified values.

Исключения

Свойство constructor имеет значение null.constructor is null.

- или --or- Элемент arguments имеет значение null.An element of arguments is null.

Параметр arguments не содержит количество элементов, равное количеству параметров для конструктора, представленного constructor.The arguments parameter does not contain the same number of elements as the number of parameters for the constructor that constructor represents.

-или--or- Свойство Type элемента arguments невозможно присвоить типу соответствующего конструктора, представляемого constructor.The Type property of an element of arguments is not assignable to the type of the corresponding parameter of the constructor that constructor represents.

Комментарии

Параметр должен содержать то же количество элементов, что и число параметров для конструктора, constructorпредставленного. argumentsThe arguments parameter must contain the same number of elements as the number of parameters for the constructor represented by constructor. Если arguments параметр nullимеет значение, он Arguments считается пустым, а свойство результирующей NewExpression коллекции — пустой.If arguments is null, it is considered empty, and the Arguments property of the resulting NewExpression is an empty collection.

Свойство результирующего NewExpression объекта представляет объявляющий тип конструктора, constructorпредставленного. TypeThe Type property of the resulting NewExpression represents the declaring type of the constructor represented by constructor. Members Свойство является пустой коллекцией.The Members property is an empty collection.

New(ConstructorInfo, Expression[])

Создает NewExpression, представляющий вызов указанного конструктора с указанными аргументами.Creates a NewExpression that represents calling the specified constructor with the specified arguments.

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);
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.The ConstructorInfo to set the Constructor property equal to.

arguments
Expression[]

Массив объектов Expression для заполнения коллекции Arguments.An array of Expression objects to use to populate the Arguments collection.

Возвраты

Выражение NewExpression со свойствомNodeType, равным New, и свойствами Constructor и Arguments, для которых заданы указанные значения.A NewExpression that has the NodeType property equal to New and the Constructor and Arguments properties set to the specified values.

Исключения

Свойство constructor имеет значение null.constructor is null.

- или --or- Элемент arguments имеет значение null.An element of arguments is null.

Длина arguments соответствует числу параметров конструктора, представляемого constructor.The length of arguments does match the number of parameters for the constructor that constructor represents.

- или --or- Свойство Type элемента arguments невозможно присвоить типу соответствующего конструктора, представляемого constructor.The Type property of an element of arguments is not assignable to the type of the corresponding parameter of the constructor that constructor represents.

Комментарии

Параметр должен содержать то же количество элементов, что и число параметров для конструктора, constructorпредставленного. argumentsThe arguments parameter must contain the same number of elements as the number of parameters for the constructor represented by constructor. Если arguments параметр nullимеет значение, он Arguments считается пустым, а свойство результирующей NewExpression коллекции — пустой.If arguments is null, it is considered empty, and the Arguments property of the resulting NewExpression is an empty collection.

Свойство результирующего NewExpression объекта представляет объявляющий тип конструктора, constructorпредставленного. TypeThe Type property of the resulting NewExpression represents the declaring type of the constructor represented by constructor. Members Свойство является пустой коллекцией.The Members property is an empty collection.

New(ConstructorInfo, IEnumerable<Expression>, IEnumerable<MemberInfo>)

Создает NewExpression, представляющий вызов указанного конструктора с указанными аргументами.Creates a NewExpression that represents calling the specified constructor with the specified arguments. Указаны элементы с доступом к полям, инициализированным конструктором.The members that access the constructor initialized fields are specified.

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.The ConstructorInfo to set the Constructor property equal to.

arguments
IEnumerable<Expression>

IEnumerable<T>, содержащий все объекты Expression, используемые для заполнения коллекции Arguments.An IEnumerable<T> that contains Expression objects to use to populate the Arguments collection.

members
IEnumerable<MemberInfo>

IEnumerable<T>, содержащий все объекты MemberInfo, используемые для заполнения коллекции Members.An IEnumerable<T> that contains MemberInfo objects to use to populate the Members collection.

Возвраты

Выражение NewExpression со свойством NodeType, равным New, и свойствами Constructor, Arguments и Members, для которых заданы указанные значения.A NewExpression that has the NodeType property equal to New and the Constructor, Arguments and Members properties set to the specified values.

Исключения

constructornull.constructor is null.

- или --or- Элемент arguments имеет значение null.An element of arguments is null.

- или --or- Элемент members имеет значение null.An element of members is null.

Параметр arguments не содержит количество элементов, равное количеству параметров для конструктора, представленного constructor.The arguments parameter does not contain the same number of elements as the number of parameters for the constructor that constructor represents.

- или --or- Свойство Type элемента arguments невозможно присвоить типу соответствующего конструктора, представляемого constructor.The Type property of an element of arguments is not assignable to the type of the corresponding parameter of the constructor that constructor represents.

-или--or- Параметр members не содержит то же количество элементов, что и параметр arguments.The members parameter does not have the same number of elements as arguments.

- или --or- Элемент свойства arguments содержит Type, представляющий тип, который нельзя назначить для типа элемента, представленного соответствующим элементом members.An element of arguments has a Type property that represents a type that is not assignable to the type of the member that is represented by the corresponding element of members.

Комментарии

Параметр должен содержать то же количество элементов, что и число параметров для конструктора, constructorпредставленного. argumentsThe arguments parameter must contain the same number of elements as the number of parameters for the constructor represented by constructor. Если arguments параметр nullимеет значение, он Arguments считается пустым, а свойство результирующей NewExpression коллекции — пустой.If arguments is null, it is considered empty, and the Arguments property of the resulting NewExpression is an empty collection.

Если members имеет nullзначение NewExpression , Members свойство результирующей коллекции является пустой коллекцией.If members is null, the Members property of the resulting NewExpression is an empty collection. Если members arguments nullпараметр не равен ,ондолжениметьтакоежеколичествоэлементов,каки,икаждыйэлементнедолжениметьзначение.nullIf members is not null, it must have the same number of elements as arguments and each element must not be null. members Каждый элемент constructorдолжен PropertyInfo иметьFieldInfo тип илиMethodInfo , представляющий член экземпляра в объявленном типе конструктора, представленного.Each element of members must be a PropertyInfo, FieldInfo or MethodInfo that represents an instance member on the declaring type of the constructor represented by constructor. Если он представляет свойство, свойство должно иметь get метод доступа.If it represents a property, the property must have a get accessor. Соответствующий элемент arguments для каждого members элемента должен иметь Type свойство, представляющее тип, который может быть назначен типу элемента, members представляемого элементом.The corresponding element of arguments for each element of members must have a Type property that represents a type that is assignable to the type of the member that the members element represents.

Свойство результирующего NewExpression объекта представляет объявляющий тип конструктора, constructor представляющий. TypeThe Type property of the resulting NewExpression represents the declaring type of the constructor that constructor represents.

New(ConstructorInfo, IEnumerable<Expression>, MemberInfo[])

Создает NewExpression, представляющий вызов указанного конструктора с указанными аргументами.Creates a NewExpression that represents calling the specified constructor with the specified arguments. Указаны элементы с доступом к полям, инициализированным в качестве массива.The members that access the constructor initialized fields are specified as an array.

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);
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.The ConstructorInfo to set the Constructor property equal to.

arguments
IEnumerable<Expression>

IEnumerable<T>, содержащий все объекты Expression, используемые для заполнения коллекции Arguments.An IEnumerable<T> that contains Expression objects to use to populate the Arguments collection.

members
MemberInfo[]

Массив объектов MemberInfo для заполнения коллекции Members.An array of MemberInfo objects to use to populate the Members collection.

Возвраты

Выражение NewExpression со свойством NodeType, равным New, и свойствами Constructor, Arguments и Members, для которых заданы указанные значения.A NewExpression that has the NodeType property equal to New and the Constructor, Arguments and Members properties set to the specified values.

Исключения

constructornull.constructor is null.

- или --or- Элемент arguments имеет значение null.An element of arguments is null.

- или --or- Элемент members имеет значение null.An element of members is null.

Параметр arguments не содержит количество элементов, равное количеству параметров для конструктора, представленного constructor.The arguments parameter does not contain the same number of elements as the number of parameters for the constructor that constructor represents.

- или --or- Свойство Type элемента arguments невозможно присвоить типу соответствующего конструктора, представляемого constructor.The Type property of an element of arguments is not assignable to the type of the corresponding parameter of the constructor that constructor represents.

-или--or- Параметр members не содержит то же количество элементов, что и параметр arguments.The members parameter does not have the same number of elements as arguments.

- или --or- Элемент свойства arguments содержит Type, представляющий тип, который нельзя назначить для типа элемента, представленного соответствующим элементом members.An element of arguments has a Type property that represents a type that is not assignable to the type of the member that is represented by the corresponding element of members.

Комментарии

Параметр должен содержать то же количество элементов, что и число параметров для конструктора, constructorпредставленного. argumentsThe arguments parameter must contain the same number of elements as the number of parameters for the constructor represented by constructor. Если arguments параметр nullимеет значение, он Arguments считается пустым, а свойство результирующей NewExpression коллекции — пустой.If arguments is null, it is considered empty, and the Arguments property of the resulting NewExpression is an empty collection.

Если members имеет nullзначение NewExpression , Members свойство результирующей коллекции является пустой коллекцией.If members is null, the Members property of the resulting NewExpression is an empty collection. Если members arguments nullпараметр не равен ,ондолжениметьтакоежеколичествоэлементов,каки,икаждыйэлементнедолжениметьзначение.nullIf members is not null, it must have the same number of elements as arguments and each element must not be null. members Каждый элемент constructorдолжен PropertyInfo иметьFieldInfo тип илиMethodInfo , представляющий член экземпляра в объявленном типе конструктора, представленного.Each element of members must be a PropertyInfo, FieldInfo or MethodInfo that represents an instance member on the declaring type of the constructor represented by constructor. Если он представляет свойство, свойство должно иметь возможность получить значение связанного поля.If it represents a property, the property must be able to retrieve the value of the associated field. Соответствующий элемент arguments для каждого members элемента должен иметь Type свойство, представляющее тип, который может быть назначен типу элемента, members представляемого элементом.The corresponding element of arguments for each element of members must have a Type property that represents a type that is assignable to the type of the member that the members element represents.

Свойство результирующего NewExpression объекта представляет объявляющий тип конструктора, constructor представляющий. TypeThe Type property of the resulting NewExpression represents the declaring type of the constructor that constructor represents.

Применяется к