Partager via


Expression.ElementInit Méthode

Définition

Crée un objet ElementInit.

Surcharges

ElementInit(MethodInfo, IEnumerable<Expression>)

Crée un ElementInit, à partir d'un IEnumerable<T> comme deuxième argument.

ElementInit(MethodInfo, Expression[])

Crée un ElementInit, à partir d'un tableau de valeurs comme deuxième argument.

ElementInit(MethodInfo, IEnumerable<Expression>)

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

Crée un ElementInit, à partir d'un IEnumerable<T> comme deuxième 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.

arguments
IEnumerable<Expression>

IEnumerable<T> qui contient des objets Expression auquel la propriété Arguments doit être égale.

Retours

ElementInit dont les propriétés AddMethod et Arguments ont les valeurs spécifiées.

Exceptions

addMethod ou arguments est null.

La méthode représentée par addMethod n’est pas nommée « Add » (non-respect de la casse).

- ou -

La méthode représentée par addMethod n’est pas une méthode d’instance.

- ou -

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.

- ou -

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.

Exemples

L’exemple suivant montre comment utiliser la ElementInit(MethodInfo, Expression[]) méthode pour créer un ElementInit qui représente l’appel de la Add méthode pour initialiser un élément d’une collection de dictionnaires.

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 instance nommée « Add » (qui ne respecte pas la casse). La méthode add doit avoir le même nombre de paramètres que le nombre d’éléments dans arguments. La Type propriété de chaque élément dans arguments doit être assignable au type du paramètre correspondant de la méthode add, éventuellement après guillemets.

Notes

Un élément est entre guillemets uniquement si le paramètre de méthode correspondant est de type Expression. Les guillemets signifient que l’élément est encapsulé dans un Quote nœud. Le nœud résultant est un UnaryExpression dont Operand la propriété est l’élément de arguments.

S’applique à

ElementInit(MethodInfo, Expression[])

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

Crée un ElementInit, à partir d'un tableau de valeurs comme deuxième 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.

arguments
Expression[]

Tableau d'objets Expression auquel la propriété Arguments doit être égale.

Retours

ElementInit dont les propriétés AddMethod et Arguments ont les valeurs spécifiées.

Exceptions

addMethod ou arguments est null.

La méthode représentée par addMethod n'est pas nommée "Add" (non respect de la casse).

- ou -

La méthode représentée par addMethod n'est pas une méthode d'instance.

- ou -

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.

- ou -

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.

Exemples

L’exemple suivant montre comment utiliser la ElementInit(MethodInfo, Expression[]) méthode pour créer un ElementInit qui représente l’appel de la Add méthode pour initialiser un élément d’une collection de dictionnaires.

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 instance nommée « Add » (qui ne respecte pas la casse). La méthode add doit avoir le même nombre de paramètres que le nombre d’éléments dans arguments. La Type propriété de chaque élément dans arguments doit être assignable au type du paramètre correspondant de la méthode add, éventuellement après guillemets.

Notes

Un élément est entre guillemets uniquement si le paramètre de méthode correspondant est de type Expression. Les guillemets signifient que l’élément est encapsulé dans un Quote nœud. Le nœud résultant est un UnaryExpression dont Operand la propriété est l’élément de arguments.

S’applique à