Expression.ElementInit Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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