Expression.New Methode

Definitie

Hiermee maak je een NewExpression.

Overloads

Name Description
New(ConstructorInfo)

Hiermee maakt u een NewExpression die het aanroepen van de opgegeven constructor aanroept waarvoor geen argumenten nodig zijn.

New(Type)

Hiermee maakt u een NewExpression die de parameterloze constructor van het opgegeven type aanroept.

New(ConstructorInfo, IEnumerable<Expression>)

Hiermee maakt u een NewExpression die de opgegeven constructor aanroept met de opgegeven argumenten.

New(ConstructorInfo, Expression[])

Hiermee maakt u een NewExpression die de opgegeven constructor aanroept met de opgegeven argumenten.

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

Hiermee maakt u een NewExpression die de opgegeven constructor aanroept met de opgegeven argumenten. De leden die toegang hebben tot de geïnitialiseerde constructorvelden, worden opgegeven.

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

Hiermee maakt u een NewExpression die de opgegeven constructor aanroept met de opgegeven argumenten. De leden die toegang hebben tot de geïnitialiseerde constructorvelden, worden opgegeven als een matrix.

New(ConstructorInfo)

Hiermee maakt u een NewExpression die het aanroepen van de opgegeven constructor aanroept waarvoor geen argumenten nodig zijn.

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

Parameters

constructor
ConstructorInfo

Hiermee ConstructorInfo stelt u de Constructor eigenschap in die gelijk is aan.

Retouren

Een NewExpression met de NodeType eigenschap die gelijk is aan New en de Constructor eigenschap is ingesteld op de opgegeven waarde.

Uitzonderingen

constructor is null.

De constructor die constructor vertegenwoordigt, heeft ten minste één parameter.

Opmerkingen

De Arguments eigenschappen en Members eigenschappen van het resulterende NewExpression zijn lege verzamelingen. De Type eigenschap vertegenwoordigt het declaratietype van de constructor die wordt vertegenwoordigd door constructor.

Van toepassing op

New(Type)

Hiermee maakt u een NewExpression die de parameterloze constructor van het opgegeven type aanroept.

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

Parameters

type
Type

Een Type met een constructor die geen argumenten gebruikt.

Retouren

Een NewExpression met de NodeType eigenschap die gelijk is aan New en de Constructor eigenschap is ingesteld op de ConstructorInfo constructor zonder parameters voor het opgegeven type.

Uitzonderingen

type is null.

Het type dat type aangeeft, heeft geen constructor zonder parameters.

Voorbeelden

In het volgende voorbeeld ziet u hoe u de New(Type) methode gebruikt om een methode te maken waarmee een NewExpression nieuw exemplaar van een woordenlijstobject wordt gemaakt door de constructor aan te roepen zonder parameters.

// 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()

Opmerkingen

De type parameter moet een type vertegenwoordigen dat een constructor zonder parameters heeft.

De Arguments eigenschappen en Members eigenschappen van het resulterende NewExpression zijn lege verzamelingen. De Type eigenschap is gelijk aan type.

Van toepassing op

New(ConstructorInfo, IEnumerable<Expression>)

Hiermee maakt u een NewExpression die de opgegeven constructor aanroept met de opgegeven argumenten.

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

Parameters

constructor
ConstructorInfo

Hiermee ConstructorInfo stelt u de Constructor eigenschap in die gelijk is aan.

arguments
IEnumerable<Expression>

Een IEnumerable<T> met Expression objecten die moeten worden gebruikt om de Arguments verzameling te vullen.

Retouren

Een NewExpression met de NodeType eigenschap gelijk aan New en de Constructor eigenschappen die Arguments zijn ingesteld op de opgegeven waarden.

Uitzonderingen

constructor is null.

– of –

Een element van arguments is null.

De arguments parameter bevat niet hetzelfde aantal elementen als het aantal parameters voor de constructor die constructor vertegenwoordigt.

– of –

De Type eigenschap van een element van arguments is niet toe te wijzen aan het type van de bijbehorende parameter van de constructor die constructor vertegenwoordigt.

Opmerkingen

De arguments parameter moet hetzelfde aantal elementen bevatten als het aantal parameters voor de constructor dat wordt vertegenwoordigd door constructor. Als arguments dat het is null, wordt het beschouwd als leeg en is de Arguments eigenschap van het resulterende NewExpression een lege verzameling.

De Type eigenschap van het resulterende NewExpression vertegenwoordigt het declaratietype van de constructor die wordt vertegenwoordigd door constructor. De Members eigenschap is een lege verzameling.

Van toepassing op

New(ConstructorInfo, Expression[])

Hiermee maakt u een NewExpression die de opgegeven constructor aanroept met de opgegeven argumenten.

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

Parameters

constructor
ConstructorInfo

Hiermee ConstructorInfo stelt u de Constructor eigenschap in die gelijk is aan.

arguments
Expression[]

Een matrix met Expression objecten die moeten worden gebruikt om de Arguments verzameling te vullen.

Retouren

Een NewExpression met de NodeType eigenschap gelijk aan New en de Constructor eigenschappen die Arguments zijn ingesteld op de opgegeven waarden.

Uitzonderingen

constructor is null.

– of –

Een element van arguments is null.

De lengte komt arguments overeen met het aantal parameters voor de constructor die constructor vertegenwoordigt.

– of –

De Type eigenschap van een element van arguments is niet toe te wijzen aan het type van de bijbehorende parameter van de constructor die constructor vertegenwoordigt.

Opmerkingen

De arguments parameter moet hetzelfde aantal elementen bevatten als het aantal parameters voor de constructor dat wordt vertegenwoordigd door constructor. Als arguments dat het is null, wordt het beschouwd als leeg en is de Arguments eigenschap van het resulterende NewExpression een lege verzameling.

De Type eigenschap van het resulterende NewExpression vertegenwoordigt het declaratietype van de constructor die wordt vertegenwoordigd door constructor. De Members eigenschap is een lege verzameling.

Van toepassing op

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

Hiermee maakt u een NewExpression die de opgegeven constructor aanroept met de opgegeven argumenten. De leden die toegang hebben tot de geïnitialiseerde constructorvelden, worden opgegeven.

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

Parameters

constructor
ConstructorInfo

Hiermee ConstructorInfo stelt u de Constructor eigenschap in die gelijk is aan.

arguments
IEnumerable<Expression>

Een IEnumerable<T> met Expression objecten die moeten worden gebruikt om de Arguments verzameling te vullen.

members
IEnumerable<MemberInfo>

Een IEnumerable<T> met MemberInfo objecten die moeten worden gebruikt om de Members verzameling te vullen.

Retouren

Een NewExpression met de NodeType eigenschap die gelijk is aan New en de Constructoreigenschappen Arguments die Members zijn ingesteld op de opgegeven waarden.

Uitzonderingen

constructor is null.

– of –

Een element van arguments is null.

– of –

Een element van members is null.

De arguments parameter bevat niet hetzelfde aantal elementen als het aantal parameters voor de constructor die constructor vertegenwoordigt.

– of –

De Type eigenschap van een element van arguments is niet toe te wijzen aan het type van de bijbehorende parameter van de constructor die constructor vertegenwoordigt.

– of –

De members parameter heeft niet hetzelfde aantal elementen als arguments.

– of –

Een element van arguments een Type eigenschap die een type vertegenwoordigt dat niet kan worden toegewezen aan het type lid dat wordt vertegenwoordigd door het bijbehorende element van members.

Opmerkingen

De arguments parameter moet hetzelfde aantal elementen bevatten als het aantal parameters voor de constructor dat wordt vertegenwoordigd door constructor. Als arguments dat het is null, wordt het beschouwd als leeg en is de Arguments eigenschap van het resulterende NewExpression een lege verzameling.

Als members dat het is null, is de Members eigenschap van het resulterende NewExpression resultaat een lege verzameling. Zo members niet null, dan moet het hetzelfde aantal elementen hebben als arguments elk element mag niet zijn null. Elk element van members moet een PropertyInfo, FieldInfo of MethodInfo dat een exemplaarlid vertegenwoordigt op het declaratietype van de constructor die wordt vertegenwoordigd door constructor. Als deze een eigenschap vertegenwoordigt, moet de eigenschap een get toegangsfunctie hebben. Het bijbehorende element van arguments elk element van members moet een Type eigenschap hebben die een type vertegenwoordigt dat kan worden toegewezen aan het type lid dat het members element vertegenwoordigt.

De Type eigenschap van het resulterende NewExpression staat voor het declaratietype van de constructor die constructor vertegenwoordigt.

Van toepassing op

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

Hiermee maakt u een NewExpression die de opgegeven constructor aanroept met de opgegeven argumenten. De leden die toegang hebben tot de geïnitialiseerde constructorvelden, worden opgegeven als een matrix.

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

Parameters

constructor
ConstructorInfo

Hiermee ConstructorInfo stelt u de Constructor eigenschap in die gelijk is aan.

arguments
IEnumerable<Expression>

Een IEnumerable<T> met Expression objecten die moeten worden gebruikt om de Arguments verzameling te vullen.

members
MemberInfo[]

Een matrix met MemberInfo objecten die moeten worden gebruikt om de Members verzameling te vullen.

Retouren

Een NewExpression met de NodeType eigenschap die gelijk is aan New en de Constructoreigenschappen Arguments die Members zijn ingesteld op de opgegeven waarden.

Uitzonderingen

constructor is null.

– of –

Een element van arguments is null.

– of –

Een element van members is null.

De arguments parameter bevat niet hetzelfde aantal elementen als het aantal parameters voor de constructor die constructor vertegenwoordigt.

– of –

De Type eigenschap van een element van arguments is niet toe te wijzen aan het type van de bijbehorende parameter van de constructor die constructor vertegenwoordigt.

– of –

De members parameter heeft niet hetzelfde aantal elementen als arguments.

– of –

Een element van arguments een Type eigenschap die een type vertegenwoordigt dat niet kan worden toegewezen aan het type lid dat wordt vertegenwoordigd door het bijbehorende element van members.

Opmerkingen

De arguments parameter moet hetzelfde aantal elementen bevatten als het aantal parameters voor de constructor dat wordt vertegenwoordigd door constructor. Als arguments dat het is null, wordt het beschouwd als leeg en is de Arguments eigenschap van het resulterende NewExpression een lege verzameling.

Als members dat het is null, is de Members eigenschap van het resulterende NewExpression resultaat een lege verzameling. Zo members niet null, dan moet het hetzelfde aantal elementen hebben als arguments elk element mag niet zijn null. Elk element van members moet een PropertyInfo, FieldInfo of MethodInfo dat een exemplaarlid vertegenwoordigt op het declaratietype van de constructor die wordt vertegenwoordigd door constructor. Als deze een eigenschap vertegenwoordigt, moet de eigenschap de waarde van het gekoppelde veld kunnen ophalen. Het bijbehorende element van arguments elk element van members moet een Type eigenschap hebben die een type vertegenwoordigt dat kan worden toegewezen aan het type lid dat het members element vertegenwoordigt.

De Type eigenschap van het resulterende NewExpression staat voor het declaratietype van de constructor die constructor vertegenwoordigt.

Van toepassing op