Expression.ElementInit Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает ElementInit.
Перегрузки
ElementInit(MethodInfo, IEnumerable<Expression>) |
Создает объект ElementInit, присвоенный IEnumerable<T> в качестве второго аргумента. |
ElementInit(MethodInfo, Expression[]) |
Создает ElementInit, присвоенный массиву значений в качестве второго аргумента. |
ElementInit(MethodInfo, IEnumerable<Expression>)
- Исходный код:
- ElementInit.cs
- Исходный код:
- ElementInit.cs
- Исходный код:
- ElementInit.cs
Создает объект ElementInit, присвоенный IEnumerable<T> в качестве второго аргумента.
public:
static System::Linq::Expressions::ElementInit ^ ElementInit(System::Reflection::MethodInfo ^ addMethod, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.ElementInit ElementInit (System.Reflection.MethodInfo addMethod, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> arguments);
static member ElementInit : System.Reflection.MethodInfo * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.ElementInit
Public Shared Function ElementInit (addMethod As MethodInfo, arguments As IEnumerable(Of Expression)) As ElementInit
Параметры
- addMethod
- MethodInfo
Объект MethodInfo, который следует задать в качестве значения свойства AddMethod.
- arguments
- IEnumerable<Expression>
Объект IEnumerable<T>, содержащий объекты Expression, которые следует задать для свойства Arguments.
Возвращаемое значение
Выражение ElementInit, содержащее свойства AddMethod и Arguments, для которых заданы указанные значения.
Исключения
Параметр addMethod
или arguments
имеет значение null
.
Методу, представленному параметром addMethod
, не присвоено имя "Добавить" (без учета регистра).
-или-
Метод, представленный параметром addMethod
, не является методом экземпляра.
-или-
Число элементов в arguments
не соответствует числу параметров метода, представленного параметром addMethod
.
-или-
Свойство Type одного или нескольких элементов arguments
невозможно присвоить типу соответствующего параметра метода, представленного addMethod
.
Примеры
В следующем примере показано, как использовать ElementInit(MethodInfo, Expression[]) метод для создания ElementInit объекта , представляющего вызов Add метода для инициализации элемента коллекции словарей.
string tree = "maple";
System.Reflection.MethodInfo addMethod = typeof(Dictionary<int, string>).GetMethod("Add");
// Create an ElementInit that represents calling
// Dictionary<int, string>.Add(tree.Length, tree).
System.Linq.Expressions.ElementInit elementInit =
System.Linq.Expressions.Expression.ElementInit(
addMethod,
System.Linq.Expressions.Expression.Constant(tree.Length),
System.Linq.Expressions.Expression.Constant(tree));
Console.WriteLine(elementInit.ToString());
// This code produces the following output:
//
// Void Add(Int32, System.String)(5,"maple")
Dim tree As String = "maple"
Dim addMethod As System.Reflection.MethodInfo = _
Type.GetType("System.Collections.Generic.Dictionary`2[System.Int32, System.String]").GetMethod("Add")
' Create an ElementInit that represents calling
' Dictionary(Of Integer, String).Add(tree.Length, tree).
Dim elementInit As System.Linq.Expressions.ElementInit = _
System.Linq.Expressions.Expression.ElementInit( _
addMethod, _
System.Linq.Expressions.Expression.Constant(tree.Length), _
System.Linq.Expressions.Expression.Constant(tree))
Console.WriteLine(elementInit.ToString())
' This code produces the following output:
'
' Void Add(Int32, System.String)(5,"maple")
Комментарии
Параметр addMethod
должен представлять метод экземпляра с именем Add (без учета регистра). Метод add должен иметь то же количество параметров, что и количество элементов в arguments
. Свойство Type каждого элемента в arguments
должно быть присвоено типу соответствующего параметра метода add, возможно, после кавыкания.
Примечание
Элемент будет содержаться в кавычках, только если соответствующий параметр метода имеет тип Expression. Кавыкание означает, что элемент заключен в Quote узел. Результирующий узел является , UnaryExpression свойство которого Operand является элементом arguments
.
Применяется к
ElementInit(MethodInfo, Expression[])
- Исходный код:
- ElementInit.cs
- Исходный код:
- ElementInit.cs
- Исходный код:
- ElementInit.cs
Создает ElementInit, присвоенный массиву значений в качестве второго аргумента.
public:
static System::Linq::Expressions::ElementInit ^ ElementInit(System::Reflection::MethodInfo ^ addMethod, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.ElementInit ElementInit (System.Reflection.MethodInfo addMethod, params System.Linq.Expressions.Expression[] arguments);
static member ElementInit : System.Reflection.MethodInfo * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.ElementInit
Public Shared Function ElementInit (addMethod As MethodInfo, ParamArray arguments As Expression()) As ElementInit
Параметры
- addMethod
- MethodInfo
Объект MethodInfo, который следует задать в качестве значения свойства AddMethod.
- arguments
- Expression[]
Массив объектов Expression, которые следует задать для свойства Arguments.
Возвращаемое значение
Выражение ElementInit, содержащее свойства AddMethod и Arguments, для которых заданы указанные значения.
Исключения
Параметр addMethod
или arguments
имеет значение null
.
Название метода, представленного параметром addMethod, отлично от "Add" (без учета регистра).
-или-
Метод, представленный параметром addMethod, не является методом экземпляра.
-или-
Число элементов, содержащихся в параметре arguments, отличается от числа параметров для метода, представленного параметром addMethod.
-или-
Свойство Type одного или нескольких элементов arguments
невозможно присвоить типу соответствующего параметра метода, представленного addMethod
.
Примеры
В следующем примере показано, как использовать ElementInit(MethodInfo, Expression[]) метод для создания ElementInit объекта , представляющего вызов Add метода для инициализации элемента коллекции словарей.
string tree = "maple";
System.Reflection.MethodInfo addMethod = typeof(Dictionary<int, string>).GetMethod("Add");
// Create an ElementInit that represents calling
// Dictionary<int, string>.Add(tree.Length, tree).
System.Linq.Expressions.ElementInit elementInit =
System.Linq.Expressions.Expression.ElementInit(
addMethod,
System.Linq.Expressions.Expression.Constant(tree.Length),
System.Linq.Expressions.Expression.Constant(tree));
Console.WriteLine(elementInit.ToString());
// This code produces the following output:
//
// Void Add(Int32, System.String)(5,"maple")
Dim tree As String = "maple"
Dim addMethod As System.Reflection.MethodInfo = _
Type.GetType("System.Collections.Generic.Dictionary`2[System.Int32, System.String]").GetMethod("Add")
' Create an ElementInit that represents calling
' Dictionary(Of Integer, String).Add(tree.Length, tree).
Dim elementInit As System.Linq.Expressions.ElementInit = _
System.Linq.Expressions.Expression.ElementInit( _
addMethod, _
System.Linq.Expressions.Expression.Constant(tree.Length), _
System.Linq.Expressions.Expression.Constant(tree))
Console.WriteLine(elementInit.ToString())
' This code produces the following output:
'
' Void Add(Int32, System.String)(5,"maple")
Комментарии
Параметр addMethod
должен представлять метод экземпляра с именем Add (без учета регистра). Метод add должен иметь то же количество параметров, что и количество элементов в arguments
. Свойство Type каждого элемента в arguments
должно быть присвоено типу соответствующего параметра метода add, возможно, после кавыкания.
Примечание
Элемент будет содержаться в кавычках, только если соответствующий параметр метода имеет тип Expression. Кавыкание означает, что элемент заключен в Quote узел. Результирующий узел является , UnaryExpression свойство которого Operand является элементом arguments
.