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 parameterlosen Konstruktor des angegebenen Typs aufruft.

New(ConstructorInfo, IEnumerable<Expression>)

Erstellt eine NewExpression, die den angegebenen Konstruktor mit den angegebenen Argumenten aufruft.

New(ConstructorInfo, Expression[])

Erstellt eine NewExpression, die den angegebenen Konstruktor mit den angegebenen Argumenten aufruft.

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

Erstellt eine NewExpression, die den angegebenen Konstruktor mit den angegebenen Argumenten aufruft. Die Elemente, die auf die initialisierten Konstruktorfelder zugreifen, werden angegeben.

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

Erstellt eine NewExpression, die den angegebenen Konstruktor mit den angegebenen Argumenten aufruft. Die Elemente, die auf die initialisierten Konstruktorfelder zugreifen, werden als Array angegeben.

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, um die Constructor-Eigenschaft auf den Wert festzulegen.

Gibt zurück

Eine NewExpression, die die NodeType-Eigenschaft hat, die New entspricht, und die Constructor-Eigenschaft, die auf den angegebenen Wert festgelegt ist.

Ausnahmen

constructor ist null.

Der Konstruktor, der constructor darstellt, weist mindestens einen Parameter auf.

Hinweise

Die eigenschaften Arguments und Members der resultierenden NewExpression sind leere Auflistungen. Die Type-Eigenschaft stellt den deklarierenden Typ des Konstruktors dar, der durch constructordargestellt wird.

Gilt für:

New(Type)

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

Erstellt eine NewExpression, die den parameterlosen Konstruktor des angegebenen Typs aufruft.

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 mit der NodeType-Eigenschaft gleich New und der Constructor-Eigenschaft, die auf die ConstructorInfo festgelegt ist, die den Konstruktor ohne Parameter für den angegebenen Typ darstellt.

Ausnahmen

type ist null.

Der Typ, der type darstellt, verfügt nicht über einen Konstruktor ohne Parameter.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie die New(Type)-Methode verwendet wird, um eine NewExpression zu erstellen, die das Erstellen einer neuen Instanz 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 parameter type muss einen Typ darstellen, der einen Konstruktor ohne Parameter aufweist.

Die eigenschaften Arguments und Members der resultierenden NewExpression 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 angegebenen Konstruktor mit den angegebenen Argumenten aufruft.

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, um die Constructor-Eigenschaft auf den Wert festzulegen.

arguments
IEnumerable<Expression>

Eine IEnumerable<T>, die Expression Objekte enthält, die zum Auffüllen der Arguments-Auflistung verwendet werden sollen.

Gibt zurück

Eine NewExpression, die die NodeType Eigenschaft hat, die New entspricht, und die eigenschaften Constructor und Arguments auf die angegebenen Werte festgelegt sind.

Ausnahmen

constructor ist null.

-oder-

Ein Element von arguments ist null.

Der parameter arguments enthält nicht dieselbe Anzahl von Elementen wie die Anzahl der Parameter für den Konstruktor, der constructor darstellt.

-oder-

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

Hinweise

Der parameter arguments muss dieselbe Anzahl von Elementen wie die Anzahl der Parameter für den Konstruktor enthalten, der durch constructordargestellt wird. Wenn argumentsnullist, 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 Konstruktors dar, der durch constructordargestellt wird. 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 angegebenen Konstruktor mit den angegebenen Argumenten aufruft.

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, um die Constructor-Eigenschaft auf den Wert festzulegen.

arguments
Expression[]

Ein Array von Expression Objekten, die zum Auffüllen der Arguments-Auflistung verwendet werden sollen.

Gibt zurück

Eine NewExpression, die die NodeType Eigenschaft hat, die New entspricht, und die eigenschaften Constructor und Arguments auf die angegebenen Werte festgelegt sind.

Ausnahmen

constructor ist null.

-oder-

Ein Element von arguments ist null.

Die Länge der arguments entspricht der Anzahl der Parameter für den Konstruktor, der constructor darstellt.

-oder-

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

Hinweise

Der parameter arguments muss dieselbe Anzahl von Elementen wie die Anzahl der Parameter für den Konstruktor enthalten, der durch constructordargestellt wird. Wenn argumentsnullist, 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 Konstruktors dar, der durch constructordargestellt wird. 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 angegebenen Konstruktor mit den angegebenen Argumenten aufruft. Die Elemente, die auf die initialisierten Konstruktorfelder zugreifen, werden angegeben.

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, um die Constructor-Eigenschaft auf den Wert festzulegen.

arguments
IEnumerable<Expression>

Eine IEnumerable<T>, die Expression Objekte enthält, die zum Auffüllen der Arguments-Auflistung verwendet werden sollen.

members
IEnumerable<MemberInfo>

Eine IEnumerable<T>, die MemberInfo Objekte enthält, die zum Auffüllen der Members-Auflistung verwendet werden sollen.

Gibt zurück

Eine NewExpression, die die eigenschaft NodeType gleich New und die eigenschaften Constructor, Arguments und Members auf die angegebenen Werte festgelegt hat.

Ausnahmen

constructor ist null.

-oder-

Ein Element von arguments ist null.

-oder-

Ein Element von members ist null.

Der parameter arguments enthält nicht dieselbe Anzahl von Elementen wie die Anzahl der Parameter für den Konstruktor, der constructor darstellt.

-oder-

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

-oder-

Der parameter members hat nicht dieselbe Anzahl von Elementen wie arguments.

-oder-

Ein Element von arguments verfügt über eine Type-Eigenschaft, die einen Typ darstellt, der dem Typ des Elements nicht zugewiesen werden kann, das durch das entsprechende Element von membersdargestellt wird.

Hinweise

Der parameter arguments muss dieselbe Anzahl von Elementen wie die Anzahl der Parameter für den Konstruktor enthalten, der durch constructordargestellt wird. Wenn argumentsnullist, wird sie als leer betrachtet, und die Arguments Eigenschaft der resultierenden NewExpression ist eine leere Auflistung.

Wenn membersnullist, ist die Members-Eigenschaft der resultierenden NewExpression eine leere Auflistung. Wenn members nicht nullist, muss sie dieselbe Anzahl von Elementen wie arguments aufweisen, und jedes Element darf nicht nullwerden. Jedes Element von members muss ein PropertyInfo, FieldInfo oder MethodInfo sein, das ein Instanzmememm für den deklarierenden Typ des Konstruktors darstellt, der durch constructordargestellt wird. 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 Elementtyp zugewiesen werden kann, den das members-Element darstellt.

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

Gilt für:

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

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

Erstellt eine NewExpression, die den angegebenen Konstruktor mit den angegebenen Argumenten aufruft. Die Elemente, die auf die initialisierten Konstruktorfelder zugreifen, werden als Array angegeben.

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, um die Constructor-Eigenschaft auf den Wert festzulegen.

arguments
IEnumerable<Expression>

Eine IEnumerable<T>, die Expression Objekte enthält, die zum Auffüllen der Arguments-Auflistung verwendet werden sollen.

members
MemberInfo[]

Ein Array von MemberInfo Objekten, die zum Auffüllen der Members-Auflistung verwendet werden sollen.

Gibt zurück

Eine NewExpression, die die eigenschaft NodeType gleich New und die eigenschaften Constructor, Arguments und Members auf die angegebenen Werte festgelegt hat.

Ausnahmen

constructor ist null.

-oder-

Ein Element von arguments ist null.

-oder-

Ein Element von members ist null.

Der parameter arguments enthält nicht dieselbe Anzahl von Elementen wie die Anzahl der Parameter für den Konstruktor, der constructor darstellt.

-oder-

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

-oder-

Der parameter members hat nicht dieselbe Anzahl von Elementen wie arguments.

-oder-

Ein Element von arguments verfügt über eine Type-Eigenschaft, die einen Typ darstellt, der dem Typ des Elements nicht zugewiesen werden kann, das durch das entsprechende Element von membersdargestellt wird.

Hinweise

Der parameter arguments muss dieselbe Anzahl von Elementen wie die Anzahl der Parameter für den Konstruktor enthalten, der durch constructordargestellt wird. Wenn argumentsnullist, wird sie als leer betrachtet, und die Arguments Eigenschaft der resultierenden NewExpression ist eine leere Auflistung.

Wenn membersnullist, ist die Members-Eigenschaft der resultierenden NewExpression eine leere Auflistung. Wenn members nicht nullist, muss sie dieselbe Anzahl von Elementen wie arguments aufweisen, und jedes Element darf nicht nullwerden. Jedes Element von members muss ein PropertyInfo, FieldInfo oder MethodInfo sein, das ein Instanzmememm für den deklarierenden Typ des Konstruktors darstellt, der durch constructordargestellt wird. 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 Elementtyp zugewiesen werden kann, den das members-Element darstellt.

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

Gilt für: