Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Expression.ElementInit-Methode: (MethodInfo, IEnumerable<Expression>)

 

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

Namespace:   System.Linq.Expressions
Assembly:  System.Core (in System.Core.dll)

public static ElementInit ElementInit(
	MethodInfo addMethod,
	IEnumerable<Expression> arguments
)

Parameter

addMethod
Type: System.Reflection.MethodInfo

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

arguments
Type: System.Collections.Generic.IEnumerable<Expression>

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

Rückgabewert

Type: System.Linq.Expressions.ElementInit

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

Exception Condition
ArgumentNullException

addMethod oder arguments ist null.

ArgumentException

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.

The addMethod parameter must represent an instance method named "Add" (case insensitive). The add method must have the same number of parameters as the number of elements in arguments. The P:System.Linq.Expressions.Expression.Type property of each element in arguments must be assignable to the type of the corresponding parameter of the add method, possibly after quoting.

System_CAPS_noteHinweis

An element will be quoted only if the corresponding method parameter is of type T:System.Linq.Expressions.Expression. Quoting means the element is wrapped in a F:System.Linq.Expressions.ExpressionType.Quote node. The resulting node is a T:System.Linq.Expressions.UnaryExpression whose P:System.Linq.Expressions.UnaryExpression.Operand property is the element of arguments.

The following example demonstrates how to use the M:System.Linq.Expressions.Expression.ElementInit(System.Reflection.MethodInfo,System.Linq.Expressions.Expression[]) method to create an T:System.Linq.Expressions.ElementInit that represents calling the M:System.Collections.Generic.Dictionary`2.Add(`0,`1) method to initialize an element of a dictionary collection.

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

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 3.5
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: