Поделиться через


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, представляющий вызов указанного конструктора с указанными аргументами. Указаны элементы с доступом к полям, инициализированным в качестве массива.

New(ConstructorInfo)

Исходный код:
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

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

New(Type)

Исходный код:
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

Параметры

type
Type

Type содержит конструктор без аргументов.

Возвращаемое значение

Выражение 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.

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

New(ConstructorInfo, IEnumerable<Expression>)

Исходный код:
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, для которых заданы указанные значения.

Исключения

constructor имеет значение null.

-или-

Элемент arguments имеет значение null.

Параметр arguments не содержит количество элементов, равное количеству параметров для конструктора, представленного constructor.

-или-

Свойство Type элемента arguments невозможно присвоить типу соответствующего конструктора, представляемого constructor.

Комментарии

Параметр arguments должен содержать то же количество элементов, что и число параметров конструктора, представленных constructor. Если arguments имеет значение null, он считается пустым, а Arguments свойство результирующего NewExpression объекта является пустой коллекцией.

Свойство Type результирующего NewExpression представляет объявляющий тип конструктора, представленный constructor. Свойство Members является пустой коллекцией.

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

New(ConstructorInfo, Expression[])

Исходный код:
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, для которых заданы указанные значения.

Исключения

constructor имеет значение null.

-или-

Элемент arguments имеет значение null.

Длина arguments соответствует числу параметров конструктора, представляемого constructor.

-или-

Свойство Type элемента arguments невозможно присвоить типу соответствующего конструктора, представляемого constructor.

Комментарии

Параметр arguments должен содержать то же количество элементов, что и число параметров конструктора, представленных constructor. Если arguments имеет значение null, он считается пустым, а Arguments свойство результирующего NewExpression объекта является пустой коллекцией.

Свойство Type результирующего NewExpression представляет объявляющий тип конструктора, представленный constructor. Свойство Members является пустой коллекцией.

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

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

Исходный код:
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 представляет .

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

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

Исходный код:
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 представляет .

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