Expression.ElementInit Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 arguments
ist.
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 arguments
ist.