Expression.ElementInit Metod

Definition

Skapar en ElementInit.

Överlagringar

Name Description
ElementInit(MethodInfo, IEnumerable<Expression>)

Skapar ett ElementInit, givet IEnumerable<T> som det andra argumentet.

ElementInit(MethodInfo, Expression[])

Skapar en ElementInit, givet en matris med värden som det andra argumentet.

ElementInit(MethodInfo, IEnumerable<Expression>)

Skapar ett ElementInit, givet IEnumerable<T> som det andra argumentet.

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

Parametrar

addMethod
MethodInfo

A MethodInfo för att ange egenskapen AddMethod lika med.

arguments
IEnumerable<Expression>

En IEnumerable<T> som innehåller Expression objekt som egenskapen ska vara Arguments lika med.

Returer

En ElementInit som har AddMethod egenskaperna och Arguments inställda på de angivna värdena.

Undantag

addMethod eller arguments är null.

Metoden som addMethod representerar heter inte "Lägg till" (skiftlägesokänslig).

-eller-

Metoden som addMethod representerar är inte en instansmetod.

-eller-

arguments innehåller inte samma antal element som antalet parametrar för den metod som addMethod representerar.

-eller-

Egenskapen Type för ett eller flera element i arguments kan inte tilldelas till typen av motsvarande parameter för den metod som addMethod representerar.

Exempel

I följande exempel visas hur du använder ElementInit(MethodInfo, Expression[]) metoden för att skapa en ElementInit som representerar att anropa Add metoden för att initiera ett element i en ordlistesamling.

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

Kommentarer

Parametern addMethod måste representera en instansmetod med namnet "Lägg till" (skiftlägesokänslig). Add-metoden måste ha samma antal parametrar som antalet element i arguments. Egenskapen Type för varje element i arguments måste kunna tilldelas till typen av motsvarande parameter för add-metoden, eventuellt efter citat.

Note

Ett element anges endast om motsvarande metodparameter är av typen Expression. Citat innebär att elementet omsluts i en Quote nod. Den resulterande noden är en UnaryExpression vars Operand egenskap är elementet argumentsi .

Gäller för

ElementInit(MethodInfo, Expression[])

Skapar en ElementInit, givet en matris med värden som det andra argumentet.

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

Parametrar

addMethod
MethodInfo

A MethodInfo för att ange egenskapen AddMethod lika med.

arguments
Expression[]

En matris med Expression objekt som egenskapen ska vara Arguments lika med.

Returer

En ElementInit som har AddMethod egenskaperna och Arguments inställda på de angivna värdena.

Undantag

addMethod eller arguments är null.

Metoden som addMethod representerar heter inte "Lägg till" (skiftlägesokänslig).

-eller-

Metoden som addMethod representerar är inte en instansmetod.

-eller-

argument innehåller inte samma antal element som antalet parametrar för metoden som addMethod representerar.

-eller-

Egenskapen Type för ett eller flera element i arguments kan inte tilldelas till typen av motsvarande parameter för den metod som addMethod representerar.

Exempel

I följande exempel visas hur du använder ElementInit(MethodInfo, Expression[]) metoden för att skapa en ElementInit som representerar att anropa Add metoden för att initiera ett element i en ordlistesamling.

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

Kommentarer

Parametern addMethod måste representera en instansmetod med namnet "Lägg till" (skiftlägesokänslig). Add-metoden måste ha samma antal parametrar som antalet element i arguments. Egenskapen Type för varje element i arguments måste kunna tilldelas till typen av motsvarande parameter för add-metoden, eventuellt efter citat.

Note

Ett element anges endast om motsvarande metodparameter är av typen Expression. Citat innebär att elementet omsluts i en Quote nod. Den resulterande noden är en UnaryExpression vars Operand egenskap är elementet argumentsi .

Gäller för