Compartir a través de


Expression.ElementInit Método

Definición

Crea una interfaz ElementInit.

Sobrecargas

Nombre Description
ElementInit(MethodInfo, IEnumerable<Expression>)

Crea un objeto ElementInit, dado como IEnumerable<T> segundo argumento.

ElementInit(MethodInfo, Expression[])

Crea un objeto ElementInit, dado una matriz de valores como segundo argumento.

ElementInit(MethodInfo, IEnumerable<Expression>)

Source:
ElementInit.cs
Source:
ElementInit.cs
Source:
ElementInit.cs
Source:
ElementInit.cs
Source:
ElementInit.cs

Crea un objeto ElementInit, dado como IEnumerable<T> 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

MethodInfo que se va a establecer la AddMethod propiedad igual a.

arguments
IEnumerable<Expression>

que IEnumerable<T> contiene Expression objetos para establecer la Arguments propiedad igual a.

Devoluciones

que ElementInit tiene las AddMethod propiedades y Arguments establecidas en los valores especificados.

Excepciones

addMethod o arguments es null.

El método que addMethod representa no se denomina "Agregar" (no distingue mayúsculas de minúsculas).

O bien

El método que addMethod representa no es un método de instancia.

O bien

arguments no contiene el mismo número de elementos que el número de parámetros para el método que addMethod representa.

O bien

La Type propiedad de uno o varios elementos de arguments no se puede asignar al tipo del parámetro correspondiente del método que addMethod representa.

Ejemplos

En el ejemplo siguiente se muestra cómo usar el ElementInit(MethodInfo, Expression[]) método para crear un ElementInit objeto que representa la llamada al Add método para inicializar un elemento de una colección de diccionarios.

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")

Comentarios

El addMethod parámetro debe representar un método de instancia denominado "Add" (no distingue mayúsculas de minúsculas). El método add debe tener el mismo número de parámetros que el número de elementos de arguments. La Type propiedad de cada elemento de arguments debe ser asignable al tipo del parámetro correspondiente del método add, posiblemente después de comillas.

Nota:

Un elemento solo se citará si el parámetro de método correspondiente es de tipo Expression. Entre comillas significa que el elemento está encapsulado en un Quote nodo. El nodo resultante es un UnaryExpression cuya Operand propiedad es el elemento de arguments.

Se aplica a

ElementInit(MethodInfo, Expression[])

Source:
ElementInit.cs
Source:
ElementInit.cs
Source:
ElementInit.cs
Source:
ElementInit.cs
Source:
ElementInit.cs

Crea un objeto ElementInit, dado una matriz de valores como 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

MethodInfo que se va a establecer la AddMethod propiedad igual a.

arguments
Expression[]

Matriz de Expression objetos para establecer la Arguments propiedad igual a.

Devoluciones

que ElementInit tiene las AddMethod propiedades y Arguments establecidas en los valores especificados.

Excepciones

addMethod o arguments es null.

El método que addMethod representa no se denomina "Agregar" (no distingue mayúsculas de minúsculas).

O bien

El método que addMethod representa no es un método de instancia.

O bien

los argumentos no contienen el mismo número de elementos que el número de parámetros para el método que addMethod representa.

O bien

La Type propiedad de uno o varios elementos de arguments no se puede asignar al tipo del parámetro correspondiente del método que addMethod representa.

Ejemplos

En el ejemplo siguiente se muestra cómo usar el ElementInit(MethodInfo, Expression[]) método para crear un ElementInit objeto que representa la llamada al Add método para inicializar un elemento de una colección de diccionarios.

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")

Comentarios

El addMethod parámetro debe representar un método de instancia denominado "Add" (no distingue mayúsculas de minúsculas). El método add debe tener el mismo número de parámetros que el número de elementos de arguments. La Type propiedad de cada elemento de arguments debe ser asignable al tipo del parámetro correspondiente del método add, posiblemente después de comillas.

Nota:

Un elemento solo se citará si el parámetro de método correspondiente es de tipo Expression. Entre comillas significa que el elemento está encapsulado en un Quote nodo. El nodo resultante es un UnaryExpression cuya Operand propiedad es el elemento de arguments.

Se aplica a