Expression.ElementInit Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee maakt u een ElementInit.
Overloads
| Name | Description |
|---|---|
| ElementInit(MethodInfo, IEnumerable<Expression>) |
Hiermee maakt u een ElementInit, gegeven IEnumerable<T> als het tweede argument. |
| ElementInit(MethodInfo, Expression[]) |
Hiermee maakt u een ElementInit, op basis van een matrix met waarden als het tweede argument. |
ElementInit(MethodInfo, IEnumerable<Expression>)
- Bron:
- ElementInit.cs
- Bron:
- ElementInit.cs
- Bron:
- ElementInit.cs
- Bron:
- ElementInit.cs
- Bron:
- ElementInit.cs
Hiermee maakt u een ElementInit, gegeven IEnumerable<T> als het tweede 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
Parameters
- addMethod
- MethodInfo
A MethodInfo om de AddMethod eigenschap in te stellen die gelijk is aan.
- arguments
- IEnumerable<Expression>
Een IEnumerable<T> object dat objecten bevat Expression om de Arguments eigenschap in te stellen die gelijk is aan.
Retouren
Een ElementInit met de AddMethod en Arguments eigenschappen ingesteld op de opgegeven waarden.
Uitzonderingen
addMethod of arguments is null.
De methode die addMethod vertegenwoordigt, heet niet 'Add' (niet hoofdlettergevoelig).
– of –
De methode die addMethod vertegenwoordigt, is geen instantiemethode.
– of –
arguments bevat niet hetzelfde aantal elementen als het aantal parameters voor de methode die addMethod vertegenwoordigt.
– of –
De Type eigenschap van een of meer elementen van arguments is niet toe te wijzen aan het type van de bijbehorende parameter van de methode die addMethod vertegenwoordigt.
Voorbeelden
In het volgende voorbeeld ziet u hoe u de ElementInit(MethodInfo, Expression[]) methode gebruikt om een ElementInit methode te maken die de Add methode aanroept om een element van een woordenlijstverzameling te initialiseren.
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")
Opmerkingen
De addMethod parameter moet een exemplaarmethode met de naam Add vertegenwoordigen (niet hoofdlettergevoelig). De add-methode moet hetzelfde aantal parameters hebben als het aantal elementen in arguments. De Type eigenschap van elk element in arguments moet worden toegewezen aan het type van de bijbehorende parameter van de add-methode, mogelijk na het aanhalen van een quotering.
Note
Een element wordt alleen aangeroepen als de bijbehorende methodeparameter van het type Expressionis. Het aanhalingsteken betekent dat het element in een Quote knooppunt wordt verpakt. Het resulterende knooppunt is een UnaryExpression waarvan Operand de eigenschap het element is van arguments.
Van toepassing op
ElementInit(MethodInfo, Expression[])
- Bron:
- ElementInit.cs
- Bron:
- ElementInit.cs
- Bron:
- ElementInit.cs
- Bron:
- ElementInit.cs
- Bron:
- ElementInit.cs
Hiermee maakt u een ElementInit, op basis van een matrix met waarden als het tweede 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
Parameters
- addMethod
- MethodInfo
A MethodInfo om de AddMethod eigenschap in te stellen die gelijk is aan.
- arguments
- Expression[]
Een matrix met Expression objecten om de Arguments eigenschap in te stellen die gelijk is aan.
Retouren
Een ElementInit met de AddMethod en Arguments eigenschappen ingesteld op de opgegeven waarden.
Uitzonderingen
addMethod of arguments is null.
De methode die addMethod vertegenwoordigt, heet niet 'Add' (hoofdlettergevoelig).
– of –
De methode die addMethod vertegenwoordigt, is geen instantiemethode.
– of –
argumenten bevatten niet hetzelfde aantal elementen als het aantal parameters voor de methode die addMethod vertegenwoordigt.
– of –
De Type eigenschap van een of meer elementen van arguments is niet toe te wijzen aan het type van de bijbehorende parameter van de methode die addMethod vertegenwoordigt.
Voorbeelden
In het volgende voorbeeld ziet u hoe u de ElementInit(MethodInfo, Expression[]) methode gebruikt om een ElementInit methode te maken die de Add methode aanroept om een element van een woordenlijstverzameling te initialiseren.
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")
Opmerkingen
De addMethod parameter moet een exemplaarmethode met de naam Add vertegenwoordigen (niet hoofdlettergevoelig). De add-methode moet hetzelfde aantal parameters hebben als het aantal elementen in arguments. De Type eigenschap van elk element in arguments moet worden toegewezen aan het type van de bijbehorende parameter van de add-methode, mogelijk na het aanhalen van een quotering.
Note
Een element wordt alleen aangeroepen als de bijbehorende methodeparameter van het type Expressionis. Het aanhalingsteken betekent dat het element in een Quote knooppunt wordt verpakt. Het resulterende knooppunt is een UnaryExpression waarvan Operand de eigenschap het element is van arguments.