Expression.ElementInit Methode

Definitie

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.

Van toepassing op