Freigeben über


Expression.ElementInit Methode

Definition

Erstellt ein ElementInit.

Überlädt

ElementInit(MethodInfo, IEnumerable<Expression>)

Erstellt ein ElementInit, dessen zweites Argument ein IEnumerable<T> ist.

ElementInit(MethodInfo, Expression[])

Erstellt ein ElementInit, dessen zweites Argument ein Wertearray ist.

ElementInit(MethodInfo, IEnumerable<Expression>)

Quelle:
ElementInit.cs
Quelle:
ElementInit.cs
Quelle:
ElementInit.cs

Erstellt ein ElementInit, dessen zweites Argument ein IEnumerable<T> ist.

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

Parameter

addMethod
MethodInfo

Ein MethodInfo, auf das die AddMethod-Eigenschaft festgelegt werden soll.

arguments
IEnumerable<Expression>

Ein IEnumerable<T> mit Expression-Objekten, auf das die Arguments-Eigenschaft festgelegt werden soll.

Gibt zurück

Ein ElementInit, bei dem die AddMethod-Eigenschaft und die Arguments-Eigenschaft auf die angegebenen Werte festgelegt sind.

Ausnahmen

addMethod oder arguments ist null.

Die Methode, die durch addMethod dargestellt wird, heißt nicht „Add“ (Groß-/Kleinschreibung wird nicht unterschieden).

- oder -

Die Methode, die durch addMethod dargestellt wird, ist keine Instanzmethode.

- oder -

Die Anzahl der Elemente in arguments stimmt nicht mit der Anzahl der Parameter für die Methode überein, die durch addMethod dargestellt wird.

- oder -

Die Type-Eigenschaft von mindestens einem Element von arguments kann nicht dem Typ des entsprechenden Parameters der Methode zugewiesen werden, die durch addMethod dargestellt wird.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie die ElementInit(MethodInfo, Expression[]) -Methode verwendet wird, um eine ElementInit zu erstellen, die das Aufrufen der Add -Methode zum Initialisieren eines Elements einer Wörterbuchauflistung darstellt.

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

Hinweise

Der addMethod -Parameter muss eine instance Methode namens "Add" darstellen (Groß-/Kleinschreibung wird nicht beachtet). Die add-Methode muss über die gleiche Anzahl von Parametern wie die Anzahl der Elemente in verfügen arguments. Die Type -Eigenschaft jedes Elements in arguments muss dem Typ des entsprechenden Parameters der add-Methode zugewiesen werden können, möglicherweise nach dem Anführungszeichen.

Hinweis

Ein Element wird nur in Anführungszeichen gesetzt, wenn der entsprechende Methodenparameter vom Typ Expressionist. Anführungszeichen bedeutet, dass das Element in einen Quote Knoten umschlossen ist. Der resultierende Knoten ist ein UnaryExpression , dessen Operand -Eigenschaft das -Element von argumentsist.

Gilt für:

ElementInit(MethodInfo, Expression[])

Quelle:
ElementInit.cs
Quelle:
ElementInit.cs
Quelle:
ElementInit.cs

Erstellt ein ElementInit, dessen zweites Argument ein Wertearray ist.

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

Parameter

addMethod
MethodInfo

Ein MethodInfo, auf das die AddMethod-Eigenschaft festgelegt werden soll.

arguments
Expression[]

Ein Array von Expression-Objekten, auf das die Arguments-Eigenschaft festgelegt werden soll.

Gibt zurück

Ein ElementInit, bei dem die AddMethod-Eigenschaft und die Arguments-Eigenschaft auf die angegebenen Werte festgelegt sind.

Ausnahmen

addMethod oder arguments ist null.

Die durch addMethod dargestellte Methode weist nicht den Namen "Add" (Groß-/Kleinschreibung wird nicht berücksichtigt) auf.

- oder -

Die durch addMethod dargestellte Methode ist keine Instanzmethode.

- oder -

arguments enthält nicht dieselbe Anzahl von Elementen wie die Anzahl der Parameter für die durch addMethod dargestellte Methode.

- oder -

Die Type-Eigenschaft von mindestens einem Element von arguments kann nicht dem Typ des entsprechenden Parameters der Methode zugewiesen werden, die durch addMethod dargestellt wird.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie die ElementInit(MethodInfo, Expression[]) -Methode verwendet wird, um eine ElementInit zu erstellen, die das Aufrufen der Add -Methode zum Initialisieren eines Elements einer Wörterbuchauflistung darstellt.

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

Hinweise

Der addMethod -Parameter muss eine instance Methode namens "Add" darstellen (Groß-/Kleinschreibung wird nicht beachtet). Die add-Methode muss über die gleiche Anzahl von Parametern wie die Anzahl der Elemente in verfügen arguments. Die Type -Eigenschaft jedes Elements in arguments muss dem Typ des entsprechenden Parameters der add-Methode zugewiesen werden können, möglicherweise nach dem Anführungszeichen.

Hinweis

Ein Element wird nur in Anführungszeichen gesetzt, wenn der entsprechende Methodenparameter vom Typ Expressionist. Anführungszeichen bedeutet, dass das Element in einen Quote Knoten umschlossen ist. Der resultierende Knoten ist ein UnaryExpression , dessen Operand -Eigenschaft das -Element von argumentsist.

Gilt für: