Compartir a través de


Expression.ElementInit Método

Definición

Crea una interfaz ElementInit.

Sobrecargas

ElementInit(MethodInfo, IEnumerable<Expression>)

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

ElementInit(MethodInfo, Expression[])

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

ElementInit(MethodInfo, IEnumerable<Expression>)

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

Crea un objeto ElementInit, dado un objeto IEnumerable<T> como 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 en el que se va a establecer la propiedad AddMethod.

arguments
IEnumerable<Expression>

Objeto IEnumerable<T> que contiene objetos Expression en los que se va a establecer la propiedad Arguments.

Devoluciones

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

Excepciones

addMethod o arguments es null.

El método que addMethod representa no se denomina "Add" (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 del método que addMethod representa.

o bien

La propiedad Type 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" (sin distinción entre mayúsculas y 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 las 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 se ajusta 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

Crea un objeto ElementInit, dada 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 en el que se va a establecer la propiedad AddMethod.

arguments
Expression[]

Matriz de objetos Expression en los que se va a establecer la propiedad Arguments.

Devoluciones

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

Excepciones

addMethod o arguments es null.

El método que addMethod representa no se denomina "Add" (sin distinción entre mayúsculas y minúsculas).

o bien

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

o bien

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

o bien

La propiedad Type 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" (sin distinción entre mayúsculas y 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 las 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 se ajusta en un Quote nodo. El nodo resultante es un UnaryExpression cuya Operand propiedad es el elemento de arguments.

Se aplica a