MemberInitExpression Klas

Definitie

Vertegenwoordigt het aanroepen van een constructor en het initialiseren van een of meer leden van het nieuwe object.

public ref class MemberInitExpression sealed : System::Linq::Expressions::Expression
public sealed class MemberInitExpression : System.Linq.Expressions.Expression
type MemberInitExpression = class
    inherit Expression
Public NotInheritable Class MemberInitExpression
Inherits Expression
Overname
MemberInitExpression

Voorbeelden

In het volgende voorbeeld wordt een MemberInitExpression initialisatie gemaakt van twee leden van een nieuw object.

class Animal
{
    public string Species {get; set;}
    public int Age {get; set;}
}

public static void CreateMemberInitExpression()
{
    System.Linq.Expressions.NewExpression newAnimal =
        System.Linq.Expressions.Expression.New(typeof(Animal));

    System.Reflection.MemberInfo speciesMember =
        typeof(Animal).GetMember("Species")[0];
    System.Reflection.MemberInfo ageMember =
        typeof(Animal).GetMember("Age")[0];

    // Create a MemberBinding object for each member
    // that you want to initialize.
    System.Linq.Expressions.MemberBinding speciesMemberBinding =
        System.Linq.Expressions.Expression.Bind(
            speciesMember,
            System.Linq.Expressions.Expression.Constant("horse"));
    System.Linq.Expressions.MemberBinding ageMemberBinding =
        System.Linq.Expressions.Expression.Bind(
            ageMember,
            System.Linq.Expressions.Expression.Constant(12));

    // Create a MemberInitExpression that represents initializing
    // two members of the 'Animal' class.
    System.Linq.Expressions.MemberInitExpression memberInitExpression =
        System.Linq.Expressions.Expression.MemberInit(
            newAnimal,
            speciesMemberBinding,
            ageMemberBinding);

    Console.WriteLine(memberInitExpression.ToString());

    // This code produces the following output:
    //
    // new Animal() {Species = "horse", Age = 12}
}
Class Animal
    Public Species As String
    Public Age As Integer
End Class

Shared Sub CreateMemberInitExpression()
    Dim newAnimal As System.Linq.Expressions.NewExpression = _
        System.Linq.Expressions.Expression.[New](Type.GetType("ExpressionVB.MemberInitExample+Animal"))

    Dim speciesMember As System.Reflection.MemberInfo = _
        Type.GetType("ExpressionVB.MemberInitExample+Animal").GetMember("Species")(0)
    Dim ageMember As System.Reflection.MemberInfo = _
        Type.GetType("ExpressionVB.MemberInitExample+Animal").GetMember("Age")(0)

    ' Create a MemberBinding object for each member
    ' that you want to initialize.
    Dim speciesMemberBinding As System.Linq.Expressions.MemberBinding = _
        System.Linq.Expressions.Expression.Bind( _
            speciesMember, _
            System.Linq.Expressions.Expression.Constant("horse"))
    Dim ageMemberBinding As System.Linq.Expressions.MemberBinding = _
        System.Linq.Expressions.Expression.Bind( _
            ageMember, _
            System.Linq.Expressions.Expression.Constant(12))

    ' Create a MemberInitExpression that represents initializing
    ' two members of the 'Animal' class.
    Dim memberInitExpression As System.Linq.Expressions.MemberInitExpression = _
        System.Linq.Expressions.Expression.MemberInit( _
            newAnimal, _
            speciesMemberBinding, _
            ageMemberBinding)

    Console.WriteLine(memberInitExpression.ToString())

    ' This code produces the following output:
    '
    ' new Animal() {Species = "horse", Age = 12}
End Sub

Opmerkingen

Gebruik de MemberInit factory-methoden om een MemberInitExpression.

De waarde van de NodeType eigenschap van een MemberInitExpression is MemberInit.

Eigenschappen

Name Description
Bindings

Hiermee haalt u de bindingen op die beschrijven hoe u de leden van het zojuist gemaakte object initialiseert.

CanReduce

Hiermee wordt een waarde opgehaald die aangeeft of het knooppunt van de expressiestructuur kan worden verkleind.

NewExpression

Hiermee haalt u de expressie op die de constructoroproep vertegenwoordigt.

NodeType

Retourneert het knooppunttype van deze expressie. Extensieknooppunten moeten worden geretourneerd Extension bij het overschrijven van deze methode.

NodeType

Hiermee haalt u het knooppunttype van dit Expressionop.

(Overgenomen van Expression)
Type

Hiermee haalt u het statische type van de expressie op die deze Expression vertegenwoordigt.

Type

Hiermee haalt u het statische type van de expressie op die deze Expression vertegenwoordigt.

(Overgenomen van Expression)

Methoden

Name Description
Accept(ExpressionVisitor)

Verzendt naar de specifieke bezoekmethode voor dit knooppunttype. Roept bijvoorbeeld MethodCallExpression de VisitMethodCall(MethodCallExpression).

(Overgenomen van Expression)
Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
Reduce()

Hiermee vermindert u de MemberInitExpression expressie tot een eenvoudigere expressie.

ReduceAndCheck()

Vermindert dit knooppunt tot een eenvoudigere expressie. Als CanReduce waar retourneert, moet dit een geldige expressie retourneren. Deze methode kan een ander knooppunt retourneren dat zelf moet worden verminderd.

(Overgenomen van Expression)
ReduceExtensions()

Vermindert de expressie tot een bekend knooppunttype (dat geen extensieknooppunt is) of retourneert alleen de expressie als het al een bekend type is.

(Overgenomen van Expression)
ToString()

Retourneert een tekstuele weergave van de Expression.

(Overgenomen van Expression)
Update(NewExpression, IEnumerable<MemberBinding>)

Hiermee maakt u een nieuwe expressie die er als volgt uitziet, maar met behulp van de opgegeven onderliggende elementen. Als alle onderliggende items hetzelfde zijn, wordt deze expressie geretourneerd.

VisitChildren(ExpressionVisitor)

Vermindert het knooppunt en roept vervolgens de gedelegeerde van de bezoeker aan op de gereduceerde expressie. De methode genereert een uitzondering als het knooppunt niet kan worden herleid.

(Overgenomen van Expression)

Van toepassing op