Freigeben über


Expression.New Methode

Definition

Erstellt eine NewExpression.

Überlädt

New(ConstructorInfo)

Erstellt eine NewExpression, die den Aufruf des angegebenen Konstruktors darstellt, der keine Argumente akzeptiert.

New(Type)

Erstellt eine NewExpression, die den Aufruf des Konstruktors vom angegebenen Typ ohne Parameter darstellt.

New(ConstructorInfo, IEnumerable<Expression>)

Erstellt eine NewExpression, die den Aufruf des angegebenen Konstruktors mit den angegebenen Argumenten darstellt.

New(ConstructorInfo, Expression[])

Erstellt eine NewExpression, die den Aufruf des angegebenen Konstruktors mit den angegebenen Argumenten darstellt.

New(ConstructorInfo, IEnumerable<Expression>, IEnumerable<MemberInfo>)

Erstellt eine NewExpression, die den Aufruf des angegebenen Konstruktors mit den angegebenen Argumenten darstellt. Es werden die Member angegeben, die auf die durch den Konstruktor initialisierten Felder zugreifen.

New(ConstructorInfo, IEnumerable<Expression>, MemberInfo[])

Erstellt eine NewExpression, die den Aufruf des angegebenen Konstruktors mit den angegebenen Argumenten darstellt. Es werden die Member als Array angegeben, die auf die durch den Konstruktor initialisierten Felder zugreifen.

New(ConstructorInfo)

Quelle:
NewExpression.cs
Quelle:
NewExpression.cs
Quelle:
NewExpression.cs

Erstellt eine NewExpression, die den Aufruf des angegebenen Konstruktors darstellt, der keine Argumente akzeptiert.

public:
 static System::Linq::Expressions::NewExpression ^ New(System::Reflection::ConstructorInfo ^ constructor);
public static System.Linq.Expressions.NewExpression New (System.Reflection.ConstructorInfo constructor);
static member New : System.Reflection.ConstructorInfo -> System.Linq.Expressions.NewExpression
Public Shared Function New (constructor As ConstructorInfo) As NewExpression

Parameter

constructor
ConstructorInfo

Die ConstructorInfo, auf das die Constructor-Eigenschaft festgelegt werden soll.

Gibt zurück

Ein NewExpression, bei dem die NodeType-Eigenschaft gleich New und die Constructor-Eigenschaft auf den angegebenen Wert festgelegt ist.

Ausnahmen

constructor ist null.

Der durch constructor darstellte Konstruktor verfügt über mindestens einen Parameter.

Hinweise

Die Arguments Eigenschaften und Members der resultierenden NewExpression Auflistungen sind leere Auflistungen. Die Type -Eigenschaft stellt den deklarierenden Typ des durch constructordargestellten Konstruktors dar.

Gilt für:

New(Type)

Quelle:
NewExpression.cs
Quelle:
NewExpression.cs
Quelle:
NewExpression.cs

Erstellt eine NewExpression, die den Aufruf des Konstruktors vom angegebenen Typ ohne Parameter darstellt.

public:
 static System::Linq::Expressions::NewExpression ^ New(Type ^ type);
public static System.Linq.Expressions.NewExpression New (Type type);
static member New : Type -> System.Linq.Expressions.NewExpression
Public Shared Function New (type As Type) As NewExpression

Parameter

type
Type

Ein Type mit einem Konstruktor, der keine Argumente akzeptiert.

Gibt zurück

Ein NewExpression, bei dem die NodeType-Eigenschaft gleich New ist und die Constructor-Eigenschaft auf die ConstructorInfo festgelegt ist, die den Konstruktor ohne Parameter für den angegebenen Typ darstellt.

Ausnahmen

type ist null.

Der durch type darstellte Typ weist keinen Konstruktor ohne Parameter auf.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie mithilfe der New(Type) -Methode ein NewExpression erstellt wird, das das Erstellen eines neuen instance eines Wörterbuchobjekts darstellt, indem der Konstruktor ohne Parameter aufgerufen wird.

// Create a NewExpression that represents constructing
// a new instance of Dictionary<int, string>.
System.Linq.Expressions.NewExpression newDictionaryExpression =
    System.Linq.Expressions.Expression.New(typeof(Dictionary<int, string>));

Console.WriteLine(newDictionaryExpression.ToString());

// This code produces the following output:
//
// new Dictionary`2()
' Create a NewExpression that represents constructing
' a new instance of Dictionary(Of Integer, String).
Dim newDictionaryExpression As System.Linq.Expressions.NewExpression = _
    System.Linq.Expressions.Expression.[New]( _
        Type.GetType("System.Collections.Generic.Dictionary`2[System.Int32, System.String]"))

Console.WriteLine(newDictionaryExpression.ToString())

' This code produces the following output:
'
' new Dictionary`2()

Hinweise

Der type Parameter muss einen Typ darstellen, der über einen Konstruktor ohne Parameter verfügt.

Die Arguments Eigenschaften und Members der resultierenden NewExpression Auflistungen sind leere Auflistungen. Die Type -Eigenschaft ist gleich type.

Gilt für:

New(ConstructorInfo, IEnumerable<Expression>)

Quelle:
NewExpression.cs
Quelle:
NewExpression.cs
Quelle:
NewExpression.cs

Erstellt eine NewExpression, die den Aufruf des angegebenen Konstruktors mit den angegebenen Argumenten darstellt.

public:
 static System::Linq::Expressions::NewExpression ^ New(System::Reflection::ConstructorInfo ^ constructor, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.NewExpression New (System.Reflection.ConstructorInfo constructor, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> arguments);
public static System.Linq.Expressions.NewExpression New (System.Reflection.ConstructorInfo constructor, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression>? arguments);
static member New : System.Reflection.ConstructorInfo * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.NewExpression
Public Shared Function New (constructor As ConstructorInfo, arguments As IEnumerable(Of Expression)) As NewExpression

Parameter

constructor
ConstructorInfo

Die ConstructorInfo, auf das die Constructor-Eigenschaft festgelegt werden soll.

arguments
IEnumerable<Expression>

Ein IEnumerable<T>, das Expression-Objekte enthält, mit denen die Arguments-Auflistung aufgefüllt werden soll.

Gibt zurück

Ein NewExpression, bei dem die NodeType-Eigenschaft gleich New ist und die Constructor-Eigenschaft sowie die Arguments-Eigenschaft auf die angegebenen Werte festgelegt sind.

Ausnahmen

constructor ist null.

- oder -

Ein Element von arguments ist null.

Der arguments-Parameter enthält nicht dieselbe Anzahl an Elementen wie die Anzahl der Parameter für den durch constructor dargestellten Konstruktor.

- oder -

Die Type-Eigenschaft eines Elements von arguments kann nicht dem Typ des entsprechenden Parameters des Konstruktors zugewiesen werden, der durch constructor dargestellt wird.

Hinweise

Der arguments -Parameter muss die gleiche Anzahl von Elementen wie die Anzahl der Parameter für den Konstruktor enthalten, der durch dargestellt wird constructor. Wenn arguments ist null, wird sie als leer betrachtet, und die Arguments Eigenschaft der resultierenden NewExpression ist eine leere Auflistung.

Die Type -Eigenschaft des resultierenden NewExpression stellt den deklarierenden Typ des durch constructordargestellten Konstruktors dar. Die Members Eigenschaft ist eine leere Auflistung.

Gilt für:

New(ConstructorInfo, Expression[])

Quelle:
NewExpression.cs
Quelle:
NewExpression.cs
Quelle:
NewExpression.cs

Erstellt eine NewExpression, die den Aufruf des angegebenen Konstruktors mit den angegebenen Argumenten darstellt.

public:
 static System::Linq::Expressions::NewExpression ^ New(System::Reflection::ConstructorInfo ^ constructor, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.NewExpression New (System.Reflection.ConstructorInfo constructor, params System.Linq.Expressions.Expression[] arguments);
public static System.Linq.Expressions.NewExpression New (System.Reflection.ConstructorInfo constructor, params System.Linq.Expressions.Expression[]? arguments);
static member New : System.Reflection.ConstructorInfo * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.NewExpression
Public Shared Function New (constructor As ConstructorInfo, ParamArray arguments As Expression()) As NewExpression

Parameter

constructor
ConstructorInfo

Die ConstructorInfo, auf das die Constructor-Eigenschaft festgelegt werden soll.

arguments
Expression[]

Ein Array von Expression-Objekten, mit denen die Arguments-Auflistung aufgefüllt wird.

Gibt zurück

Ein NewExpression, bei dem die NodeType-Eigenschaft gleich New ist und die Constructor-Eigenschaft sowie die Arguments-Eigenschaft auf die angegebenen Werte festgelegt sind.

Ausnahmen

constructor ist null.

- oder -

Ein Element von arguments ist null.

Die Länge von arguments entspricht der Anzahl von Parametern für den Konstruktor, der durch constructor dargestellt wird.

- oder -

Die Type-Eigenschaft eines Elements von arguments kann nicht dem Typ des entsprechenden Parameters des Konstruktors zugewiesen werden, der durch constructor dargestellt wird.

Hinweise

Der arguments -Parameter muss die gleiche Anzahl von Elementen wie die Anzahl der Parameter für den Konstruktor enthalten, der durch dargestellt wird constructor. Wenn arguments ist null, wird sie als leer betrachtet, und die Arguments Eigenschaft der resultierenden NewExpression ist eine leere Auflistung.

Die Type -Eigenschaft des resultierenden NewExpression stellt den deklarierenden Typ des durch constructordargestellten Konstruktors dar. Die Members Eigenschaft ist eine leere Auflistung.

Gilt für:

New(ConstructorInfo, IEnumerable<Expression>, IEnumerable<MemberInfo>)

Quelle:
NewExpression.cs
Quelle:
NewExpression.cs
Quelle:
NewExpression.cs

Erstellt eine NewExpression, die den Aufruf des angegebenen Konstruktors mit den angegebenen Argumenten darstellt. Es werden die Member angegeben, die auf die durch den Konstruktor initialisierten Felder zugreifen.

public:
 static System::Linq::Expressions::NewExpression ^ New(System::Reflection::ConstructorInfo ^ constructor, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ arguments, System::Collections::Generic::IEnumerable<System::Reflection::MemberInfo ^> ^ members);
public static System.Linq.Expressions.NewExpression New (System.Reflection.ConstructorInfo constructor, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> arguments, System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> members);
public static System.Linq.Expressions.NewExpression New (System.Reflection.ConstructorInfo constructor, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression>? arguments, System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo>? members);
static member New : System.Reflection.ConstructorInfo * seq<System.Linq.Expressions.Expression> * seq<System.Reflection.MemberInfo> -> System.Linq.Expressions.NewExpression
Public Shared Function New (constructor As ConstructorInfo, arguments As IEnumerable(Of Expression), members As IEnumerable(Of MemberInfo)) As NewExpression

Parameter

constructor
ConstructorInfo

Die ConstructorInfo, auf das die Constructor-Eigenschaft festgelegt werden soll.

arguments
IEnumerable<Expression>

Ein IEnumerable<T>, das Expression-Objekte enthält, mit denen die Arguments-Auflistung aufgefüllt werden soll.

members
IEnumerable<MemberInfo>

Ein IEnumerable<T>, das MemberInfo-Objekte enthält, mit denen die Members-Auflistung aufgefüllt werden soll.

Gibt zurück

Ein NewExpression, bei dem die NodeType-Eigenschaft gleich New ist und die Eigenschaften Constructor, Arguments und Members auf die angegebenen Werte festgelegt sind.

Ausnahmen

constructor ist null.

- oder -

Ein Element von arguments ist null.

- oder -

Ein Element von members ist null.

Der arguments-Parameter enthält nicht dieselbe Anzahl an Elementen wie die Anzahl der Parameter für den durch constructor dargestellten Konstruktor.

- oder -

Die Type-Eigenschaft eines Elements von arguments kann nicht dem Typ des entsprechenden Parameters des Konstruktors zugewiesen werden, der durch constructor dargestellt wird.

- oder -

Der members-Parameter weist nicht die gleiche Anzahl an Elementen auf wie arguments.

- oder -

Ein Element von arguments weist eine Type-Eigenschaft auf, die einen Typ darstellt, der nicht dem Typ des Members zugeordnet werden kann, der durch das entsprechende Element von members dargestellt wird.

Hinweise

Der arguments -Parameter muss die gleiche Anzahl von Elementen wie die Anzahl der Parameter für den Konstruktor enthalten, der durch dargestellt wird constructor. Wenn arguments ist null, wird sie als leer betrachtet, und die Arguments Eigenschaft der resultierenden NewExpression ist eine leere Auflistung.

Wenn members ist null, ist die Members -Eigenschaft der resultierenden NewExpression eine leere Auflistung. Wenn members nicht null, muss es die gleiche Anzahl von Elementen wie arguments aufweisen, und jedes Element darf nicht sein null. Jedes Element von members muss ein PropertyInfooder FieldInfoMethodInfo sein, das ein instance Member auf dem deklarierenden Typ des durch constructordargestellten Konstruktors darstellt. Wenn sie eine Eigenschaft darstellt, muss die Eigenschaft über einen get Accessor verfügen. Das entsprechende Element von arguments für jedes Element von members muss über eine Type Eigenschaft verfügen, die einen Typ darstellt, der dem Typ des Members zugewiesen werden kann, den das members Element darstellt.

Die Type -Eigenschaft des resultierenden NewExpression stellt den deklarierenden Typ des Konstruktors dar, constructor der darstellt.

Gilt für:

New(ConstructorInfo, IEnumerable<Expression>, MemberInfo[])

Quelle:
NewExpression.cs
Quelle:
NewExpression.cs
Quelle:
NewExpression.cs

Erstellt eine NewExpression, die den Aufruf des angegebenen Konstruktors mit den angegebenen Argumenten darstellt. Es werden die Member als Array angegeben, die auf die durch den Konstruktor initialisierten Felder zugreifen.

public:
 static System::Linq::Expressions::NewExpression ^ New(System::Reflection::ConstructorInfo ^ constructor, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ arguments, ... cli::array <System::Reflection::MemberInfo ^> ^ members);
public static System.Linq.Expressions.NewExpression New (System.Reflection.ConstructorInfo constructor, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> arguments, params System.Reflection.MemberInfo[] members);
public static System.Linq.Expressions.NewExpression New (System.Reflection.ConstructorInfo constructor, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression>? arguments, params System.Reflection.MemberInfo[]? members);
static member New : System.Reflection.ConstructorInfo * seq<System.Linq.Expressions.Expression> * System.Reflection.MemberInfo[] -> System.Linq.Expressions.NewExpression
Public Shared Function New (constructor As ConstructorInfo, arguments As IEnumerable(Of Expression), ParamArray members As MemberInfo()) As NewExpression

Parameter

constructor
ConstructorInfo

Die ConstructorInfo, auf das die Constructor-Eigenschaft festgelegt werden soll.

arguments
IEnumerable<Expression>

Ein IEnumerable<T>, das Expression-Objekte enthält, mit denen die Arguments-Auflistung aufgefüllt werden soll.

members
MemberInfo[]

Ein Array von MemberInfo-Objekten, mit denen die Members-Auflistung aufgefüllt wird.

Gibt zurück

Ein NewExpression, bei dem die NodeType-Eigenschaft gleich New ist und die Eigenschaften Constructor, Arguments und Members auf die angegebenen Werte festgelegt sind.

Ausnahmen

constructor ist null.

- oder -

Ein Element von arguments ist null.

- oder -

Ein Element von members ist null.

Der arguments-Parameter enthält nicht dieselbe Anzahl an Elementen wie die Anzahl der Parameter für den durch constructor dargestellten Konstruktor.

- oder -

Die Type-Eigenschaft eines Elements von arguments kann nicht dem Typ des entsprechenden Parameters des Konstruktors zugewiesen werden, der durch constructor dargestellt wird.

- oder -

Der members-Parameter weist nicht die gleiche Anzahl an Elementen auf wie arguments.

- oder -

Ein Element von arguments weist eine Type-Eigenschaft auf, die einen Typ darstellt, der nicht dem Typ des Members zugeordnet werden kann, der durch das entsprechende Element von members dargestellt wird.

Hinweise

Der arguments Parameter muss die gleiche Anzahl von Elementen wie die Anzahl der Parameter für den durch constructordargestellten Konstruktor enthalten. Wenn arguments ist null, wird er als leer betrachtet, und die Arguments -Eigenschaft der resultierenden NewExpression ist eine leere Auflistung.

Wenn members ist null, ist die Members -Eigenschaft der resultierenden NewExpression eine leere Auflistung. Wenn members nicht nullist, muss es die gleiche Anzahl von Elementen wie arguments aufweisen, und jedes Element darf nicht sein null. Jedes Element von members muss ein PropertyInfooder sein, MethodInfoFieldInfo das ein instance-Member für den deklarierenden Typ des durch constructordargestellten Konstruktors darstellt. Wenn sie eine Eigenschaft darstellt, muss die Eigenschaft in der Lage sein, den Wert des zugeordneten Felds abzurufen. Das entsprechende Element von arguments für jedes Element von members muss über eine Type -Eigenschaft verfügen, die einen Typ darstellt, der dem Typ des Members zugewiesen werden kann, den das members Element darstellt.

Die Type -Eigenschaft des resultierenden NewExpression stellt den deklarierenden Typ des Konstruktors dar, constructor der darstellt.

Gilt für: