Expression.ElementInit Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Cria um ElementInit.
Sobrecargas
ElementInit(MethodInfo, IEnumerable<Expression>) |
Cria uma ElementInit, dado um IEnumerable<T> como o segundo argumento. |
ElementInit(MethodInfo, Expression[]) |
Cria uma ElementInit, dada uma matriz de valores como o segundo argumento. |
ElementInit(MethodInfo, IEnumerable<Expression>)
- Origem:
- ElementInit.cs
- Origem:
- ElementInit.cs
- Origem:
- ElementInit.cs
Cria uma ElementInit, dado um IEnumerable<T> como o segundo argumento.
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
Parâmetros
- addMethod
- MethodInfo
Um MethodInfo para definir a propriedade AddMethod igual a ele.
- arguments
- IEnumerable<Expression>
Um IEnumerable<T> que contém objetos Expression igual aos quais definir a propriedade Arguments.
Retornos
Um ElementInit que tem as propriedades AddMethod e Arguments definidas para os valores especificados.
Exceções
addMethod
ou arguments
é null
.
O método representado por addMethod
não é nomeado "Add" (não diferencia maiúsculas de minúsculas).
- ou -
O método representado por addMethod
não é um método de instância.
- ou -
arguments
não contém o mesmo número de elementos que o número de parâmetros para o método representado por addMethod
.
- ou -
A propriedade Type de um ou mais elementos de arguments
não pode ser atribuída ao tipo do parâmetro correspondente do método representado por addMethod
.
Exemplos
O exemplo a seguir demonstra como usar o ElementInit(MethodInfo, Expression[]) método para criar um ElementInit que representa chamar o Add método para inicializar um elemento de uma coleção de dicionários.
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")
Comentários
O addMethod
parâmetro deve representar um método de instância chamado "Add" (não diferencia maiúsculas de minúsculas). O método add deve ter o mesmo número de parâmetros que o número de elementos em arguments
. A Type propriedade de cada elemento em arguments
deve ser atribuível ao tipo do parâmetro correspondente do método add, possivelmente após aspas.
Observação
Um elemento será citado somente se o parâmetro de método correspondente for do tipo Expression. Aspas significam que o elemento está encapsulado em um Quote nó. O nó resultante é um UnaryExpression cuja Operand propriedade é o elemento de arguments
.
Aplica-se a
ElementInit(MethodInfo, Expression[])
- Origem:
- ElementInit.cs
- Origem:
- ElementInit.cs
- Origem:
- ElementInit.cs
Cria uma ElementInit, dada uma matriz de valores como o segundo argumento.
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
Parâmetros
- addMethod
- MethodInfo
Um MethodInfo para definir a propriedade AddMethod igual a ele.
- arguments
- Expression[]
Uma matriz de objetos Expression igual aos quais definir a propriedade Arguments.
Retornos
Um ElementInit que tem as propriedades AddMethod e Arguments definidas para os valores especificados.
Exceções
addMethod
ou arguments
é null
.
O método representado por addMethod não é nomeado "Add" (não diferencia maiúsculas de minúsculas).
- ou -
O método representado por addMethod não é um método de instância.
- ou -
arguments não contém o mesmo número de elementos que o número de parâmetros para o método representado por addMethod.
- ou -
A propriedade Type de um ou mais elementos de arguments
não pode ser atribuída ao tipo do parâmetro correspondente do método representado por addMethod
.
Exemplos
O exemplo a seguir demonstra como usar o ElementInit(MethodInfo, Expression[]) método para criar um ElementInit que representa chamar o Add método para inicializar um elemento de uma coleção de dicionários.
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")
Comentários
O addMethod
parâmetro deve representar um método de instância chamado "Add" (não diferencia maiúsculas de minúsculas). O método add deve ter o mesmo número de parâmetros que o número de elementos em arguments
. A Type propriedade de cada elemento em arguments
deve ser atribuível ao tipo do parâmetro correspondente do método add, possivelmente após aspas.
Observação
Um elemento será citado somente se o parâmetro de método correspondente for do tipo Expression. Aspas significam que o elemento está encapsulado em um Quote nó. O nó resultante é um UnaryExpression cuja Operand propriedade é o elemento de arguments
.