Expression.ElementInit Méthode

Définition

Crée un objet ElementInit.Creates an ElementInit.

Surcharges

ElementInit(MethodInfo, IEnumerable<Expression>)

Crée un ElementInit, à partir d'un IEnumerable<T> comme deuxième argument.Creates an ElementInit, given an IEnumerable<T> as the second argument.

ElementInit(MethodInfo, Expression[])

Crée un ElementInit, à partir d'un tableau de valeurs comme deuxième argument.Creates an ElementInit, given an array of values as the second argument.

ElementInit(MethodInfo, IEnumerable<Expression>)

Crée un ElementInit, à partir d'un IEnumerable<T> comme deuxième argument.Creates an ElementInit, given an IEnumerable<T> as the second argument.

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

Paramètres

addMethod
MethodInfo

MethodInfo auquel la propriété AddMethod doit être égale.A MethodInfo to set the AddMethod property equal to.

arguments
IEnumerable<Expression>

IEnumerable<T> qui contient des objets Expression auquel la propriété Arguments doit être égale.An IEnumerable<T> that contains Expression objects to set the Arguments property equal to.

Retours

ElementInit dont les propriétés AddMethod et Arguments ont les valeurs spécifiées.An ElementInit that has the AddMethod and Arguments properties set to the specified values.

Exceptions

addMethod ou arguments est null.addMethod or arguments is null.

La méthode représentée par addMethod n’est pas nommée « Add » (non-respect de la casse).The method that addMethod represents is not named "Add" (case insensitive).

- ou --or- La méthode représentée par addMethod n’est pas une méthode d’instance.The method that addMethod represents is not an instance method.

- ou --or- Le nombre d’éléments que contient arguments ne correspond pas au nombre de paramètres de la méthode représentée par addMethod.arguments does not contain the same number of elements as the number of parameters for the method that addMethod represents.

ou-or- La propriété Type d’un ou plusieurs éléments de arguments n’est pas affectable au type du paramètre correspondant de la méthode représentée par addMethod.The Type property of one or more elements of arguments is not assignable to the type of the corresponding parameter of the method that addMethod represents.

Exemples

L’exemple suivant montre comment utiliser la ElementInit(MethodInfo, Expression[]) méthode pour créer un ElementInit qui représente l’appel de Add la méthode pour initialiser un élément d’une collection de dictionnaires.The following example demonstrates how to use the ElementInit(MethodInfo, Expression[]) method to create an ElementInit that represents calling the Add method to initialize an element of a dictionary collection.

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

Remarques

Le addMethod paramètre doit représenter une méthode d’instance nommée « Add » (non-respect de la casse).The addMethod parameter must represent an instance method named "Add" (case insensitive). La méthode Add doit avoir le même nombre de paramètres que le nombre d’éléments dans arguments.The add method must have the same number of parameters as the number of elements in arguments. La Type propriété de chaque élément dans arguments doit pouvoir être assignée au type du paramètre correspondant de la méthode Add, éventuellement après l’attribution d’un guillemet.The Type property of each element in arguments must be assignable to the type of the corresponding parameter of the add method, possibly after quoting.

Notes

Un élément est mis entre guillemets uniquement si le paramètre de méthode correspondant Expressionest de type.An element will be quoted only if the corresponding method parameter is of type Expression. Quote signifie que l’élément est encapsulé dans Quote un nœud.Quoting means the element is wrapped in a Quote node. Le nœud résultant est un UnaryExpression dont Operand la propriété est l’élément argumentsde.The resulting node is a UnaryExpression whose Operand property is the element of arguments.

ElementInit(MethodInfo, Expression[])

Crée un ElementInit, à partir d'un tableau de valeurs comme deuxième argument.Creates an ElementInit, given an array of values as the second argument.

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

Paramètres

addMethod
MethodInfo

MethodInfo auquel la propriété AddMethod doit être égale.A MethodInfo to set the AddMethod property equal to.

arguments
Expression[]

Tableau d'objets Expression auquel la propriété Arguments doit être égale.An array of Expression objects to set the Arguments property equal to.

Retours

ElementInit dont les propriétés AddMethod et Arguments ont les valeurs spécifiées.An ElementInit that has the AddMethod and Arguments properties set to the specified values.

Exceptions

addMethod ou arguments a la valeur null.addMethod or arguments is null.

La méthode représentée par addMethod n'est pas nommée "Add" (non respect de la casse).The method that addMethod represents is not named "Add" (case insensitive).

ou-or- La méthode représentée par addMethod n'est pas une méthode d'instance.The method that addMethod represents is not an instance method.

ou-or- arguments ne contient pas le même nombre d'éléments que le nombre de paramètres pour la méthode représentée par addMethod.arguments does not contain the same number of elements as the number of parameters for the method that addMethod represents.

- ou --or- La propriété Type d’un ou plusieurs éléments de arguments n’est pas affectable au type du paramètre correspondant de la méthode représentée par addMethod.The Type property of one or more elements of arguments is not assignable to the type of the corresponding parameter of the method that addMethod represents.

Exemples

L’exemple suivant montre comment utiliser la ElementInit(MethodInfo, Expression[]) méthode pour créer un ElementInit qui représente l’appel de Add la méthode pour initialiser un élément d’une collection de dictionnaires.The following example demonstrates how to use the ElementInit(MethodInfo, Expression[]) method to create an ElementInit that represents calling the Add method to initialize an element of a dictionary collection.

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

Remarques

Le addMethod paramètre doit représenter une méthode d’instance nommée « Add » (non-respect de la casse).The addMethod parameter must represent an instance method named "Add" (case insensitive). La méthode Add doit avoir le même nombre de paramètres que le nombre d’éléments dans arguments.The add method must have the same number of parameters as the number of elements in arguments. La Type propriété de chaque élément dans arguments doit pouvoir être assignée au type du paramètre correspondant de la méthode Add, éventuellement après l’attribution d’un guillemet.The Type property of each element in arguments must be assignable to the type of the corresponding parameter of the add method, possibly after quoting.

Notes

Un élément est mis entre guillemets uniquement si le paramètre de méthode correspondant Expressionest de type.An element will be quoted only if the corresponding method parameter is of type Expression. Quote signifie que l’élément est encapsulé dans Quote un nœud.Quoting means the element is wrapped in a Quote node. Le nœud résultant est un UnaryExpression dont Operand la propriété est l’élément argumentsde.The resulting node is a UnaryExpression whose Operand property is the element of arguments.

S’applique à