Sdílet prostřednictvím


Expression.ElementInit Metoda

Definice

Vytvoří .ElementInit

Přetížení

ElementInit(MethodInfo, IEnumerable<Expression>)

Vytvoří , který ElementInitje IEnumerable<T> zadaný jako druhý argument.

ElementInit(MethodInfo, Expression[])

Vytvoří objekt ElementInit, který je zadaný polem hodnot jako druhým argumentem.

ElementInit(MethodInfo, IEnumerable<Expression>)

Zdroj:
ElementInit.cs
Zdroj:
ElementInit.cs
Zdroj:
ElementInit.cs

Vytvoří , který ElementInitje IEnumerable<T> zadaný jako druhý 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

Parametry

addMethod
MethodInfo

A MethodInfo , aby se AddMethod vlastnost nastavil na hodnotu .

arguments
IEnumerable<Expression>

Objekt IEnumerable<T> obsahující Expression objekty, které mají nastavit Arguments vlastnost na rovnu.

Návraty

Vlastnost ElementInit , která má AddMethod vlastnosti a Arguments nastavené na zadané hodnoty.

Výjimky

addMethod nebo arguments je null.

Metoda, která představuje, addMethod se nenazve "Add" (nerozlišují se malá a velká písmena).

-nebo-

Metoda, která představuje, addMethod není metoda instance.

-nebo-

arguments neobsahuje stejný počet prvků jako počet parametrů pro metodu, která addMethod představuje.

-nebo-

Vlastnost Type jednoho nebo více prvků objektu arguments není možné přiřadit k typu odpovídajícího parametru metody, která addMethod představuje.

Příklady

Následující příklad ukazuje, jak použít metodu ElementInit(MethodInfo, Expression[]) k vytvoření ElementInit , který představuje volání Add metody inicializovat prvek kolekce slovníku.

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

Poznámky

Parametr addMethod musí představovat metodu instance s názvem Add (nerozlišují se malá a velká písmena). Metoda add musí mít stejný počet parametrů jako počet prvků v arguments. Vlastnost Type každého prvku v arguments musí být přiřaditelná k typu odpovídajícího parametru metody add, pravděpodobně po uvozování.

Poznámka

Element bude uvozován pouze v případě, že odpovídající parametr metody je typu Expression. Uvozování znamená, že element je zabalený Quote v uzlu. Výsledný uzel je, UnaryExpression jehož Operand vlastnost je elementem .arguments

Platí pro

ElementInit(MethodInfo, Expression[])

Zdroj:
ElementInit.cs
Zdroj:
ElementInit.cs
Zdroj:
ElementInit.cs

Vytvoří objekt ElementInit, který je zadaný polem hodnot jako druhým argumentem.

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

Parametry

addMethod
MethodInfo

A MethodInfo , aby se AddMethod vlastnost nastavil na hodnotu .

arguments
Expression[]

Pole Expression objektů, které mají nastavit Arguments vlastnost na rovnu.

Návraty

Vlastnost ElementInit , která má AddMethod vlastnosti a Arguments nastavené na zadané hodnoty.

Výjimky

addMethod nebo arguments je null.

Metoda, kterou addMethod představuje, nemá název "Add" (nerozlišují se malá a velká písmena).

-nebo-

Metoda, která addMethod představuje, není metodou instance.

-nebo-

argumenty neobsahuje stejný počet prvků jako počet parametrů pro metodu, která addMethod představuje.

-nebo-

Vlastnost Type jednoho nebo více prvků objektu arguments není možné přiřadit k typu odpovídajícího parametru metody, která addMethod představuje.

Příklady

Následující příklad ukazuje, jak použít metodu ElementInit(MethodInfo, Expression[]) k vytvoření ElementInit , který představuje volání Add metody inicializovat prvek kolekce slovníku.

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

Poznámky

Parametr addMethod musí představovat metodu instance s názvem Add (nerozlišují se malá a velká písmena). Metoda add musí mít stejný počet parametrů jako počet prvků v arguments. Vlastnost Type každého prvku v arguments musí být přiřaditelná k typu odpovídajícího parametru metody add, pravděpodobně po uvozování.

Poznámka

Element bude uvozován pouze v případě, že odpovídající parametr metody je typu Expression. Uvozování znamená, že element je zabalený Quote v uzlu. Výsledný uzel je, UnaryExpression jehož Operand vlastnost je elementem .arguments

Platí pro