Expression.New Метод
В этой статье
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает объект 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, представляющий вызов указанного конструктора с указанными аргументами. Указаны элементы с доступом к полям, инициализированным в качестве массива. |
- Исходный код:
- NewExpression.cs
- Исходный код:
- NewExpression.cs
- Исходный код:
- 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 и Members результирующего объекта NewExpression являются пустыми коллекциями. Свойство Type представляет объявляющий тип конструктора, представленный .constructor
Применяется к
.NET 9 и другие версии
Продукт | Версии |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
- Исходный код:
- NewExpression.cs
- Исходный код:
- NewExpression.cs
- Исходный код:
- 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 и Members результирующего объекта NewExpression являются пустыми коллекциями. Свойство Type равно type
.
Применяется к
.NET 9 и другие версии
Продукт | Версии |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
- Исходный код:
- NewExpression.cs
- Исходный код:
- NewExpression.cs
- Исходный код:
- 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
.
-или-
Свойство Type элемента arguments
невозможно присвоить типу соответствующего конструктора, представляемого constructor
.
Комментарии
Параметр arguments
должен содержать то же количество элементов, что и число параметров конструктора, представленных constructor
. Если arguments
имеет значение null
, он считается пустым, а Arguments свойство результирующего NewExpression объекта является пустой коллекцией.
Свойство Type результирующего NewExpression представляет объявляющий тип конструктора, представленный constructor
. Свойство Members является пустой коллекцией.
Применяется к
.NET 9 и другие версии
Продукт | Версии |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
- Исходный код:
- NewExpression.cs
- Исходный код:
- NewExpression.cs
- Исходный код:
- 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
.
-или-
Свойство Type элемента arguments
невозможно присвоить типу соответствующего конструктора, представляемого constructor
.
Комментарии
Параметр arguments
должен содержать то же количество элементов, что и число параметров конструктора, представленных constructor
. Если arguments
имеет значение null
, он считается пустым, а Arguments свойство результирующего NewExpression объекта является пустой коллекцией.
Свойство Type результирующего NewExpression представляет объявляющий тип конструктора, представленный constructor
. Свойство Members является пустой коллекцией.
Применяется к
.NET 9 и другие версии
Продукт | Версии |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
- Исходный код:
- NewExpression.cs
- Исходный код:
- NewExpression.cs
- Исходный код:
- 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, для которых заданы указанные значения.
Исключения
constructor
имеет значение null
.
-или-
Элемент arguments
имеет значение null
.
-или-
Элемент members
имеет значение null
.
Параметр arguments
не содержит количество элементов, равное количеству параметров для конструктора, представленного constructor
.
-или-
Свойство Type элемента arguments
невозможно присвоить типу соответствующего конструктора, представляемого constructor
.
-или-
Параметр members
не содержит то же количество элементов, что и параметр arguments
.
-или-
Элемент свойства arguments
содержит Type, представляющий тип, который нельзя назначить для типа элемента, представленного соответствующим элементом members
.
Комментарии
Параметр arguments
должен содержать то же количество элементов, что и число параметров конструктора, представленных constructor
. Если arguments
имеет значение null
, он считается пустым, а Arguments свойство результирующего NewExpression объекта является пустой коллекцией.
Если members
имеет значение null
, Members свойство результирующего NewExpression объекта является пустой коллекцией. Если members
значение не null
равно , оно должно иметь такое же количество элементов, как arguments
и каждый элемент не должен иметь значение null
. Каждый элемент members
должен быть элементом PropertyInfoили MethodInfo , FieldInfo который представляет элемент экземпляра в объявляемом типе конструктора, представленного constructor
. Если он представляет свойство, свойство должно иметь get
метод доступа. Соответствующий arguments
элемент для каждого элемента members
должен иметь Type свойство , представляющее тип, который можно назначить типу элемента, представляемого элементом members
.
Свойство Type результирующего NewExpression представляет объявляющий тип конструктора, который constructor
представляет .
Применяется к
.NET 9 и другие версии
Продукт | Версии |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
- Исходный код:
- NewExpression.cs
- Исходный код:
- NewExpression.cs
- Исходный код:
- 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, для которых заданы указанные значения.
Исключения
constructor
имеет значение null
.
-или-
Элемент arguments
имеет значение null
.
-или-
Элемент members
имеет значение null
.
Параметр arguments
не содержит количество элементов, равное количеству параметров для конструктора, представленного constructor
.
-или-
Свойство Type элемента arguments
невозможно присвоить типу соответствующего конструктора, представляемого constructor
.
-или-
Параметр members
не содержит то же количество элементов, что и параметр arguments
.
-или-
Элемент свойства arguments
содержит Type, представляющий тип, который нельзя назначить для типа элемента, представленного соответствующим элементом members
.
Комментарии
Параметр arguments
должен содержать то же количество элементов, что и число параметров конструктора, представленных constructor
. Если arguments
имеет значение null
, он считается пустым, а Arguments свойство результирующего NewExpression объекта является пустой коллекцией.
Если members
имеет значение null
, Members свойство результирующего NewExpression объекта является пустой коллекцией. Если members
значение не null
равно , оно должно иметь такое же количество элементов, как arguments
и каждый элемент не должен иметь значение null
. Каждый элемент members
должен быть элементом PropertyInfoили MethodInfo , FieldInfo который представляет элемент экземпляра в объявляемом типе конструктора, представленного constructor
. Если он представляет свойство, свойство должно иметь возможность получить значение связанного поля. Соответствующий arguments
элемент для каждого элемента members
должен иметь Type свойство , представляющее тип, который можно назначить типу элемента, представляемого элементом members
.
Свойство Type результирующего NewExpression представляет объявляющий тип конструктора, который constructor
представляет .
Применяется к
.NET 9 и другие версии
Продукт | Версии |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |