MemberInitExpression Classe

Définition

Représente l'appel d'un constructeur et l'initialisation d'un ou plusieurs membres du nouvel objet.Represents calling a constructor and initializing one or more members of the new 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
Héritage
MemberInitExpression

Exemples

L’exemple suivant crée un MemberInitExpression qui représente l’initialisation de deux membres d’un nouvel objet.The following example creates a MemberInitExpression that represents the initialization of two members of a new 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

Remarques

Utilisez les méthodes de fabrique MemberInit pour créer une MemberInitExpression.Use the MemberInit factory methods to create a MemberInitExpression.

La valeur de la propriété NodeType d’un MemberInitExpression est MemberInit.The value of the NodeType property of a MemberInitExpression is MemberInit.

Propriétés

Bindings

Obtient les liaisons qui décrivent comment initialiser les membres de l'objet nouvellement créé.Gets the bindings that describe how to initialize the members of the newly created object.

CanReduce

Obtient une valeur qui indique si le nœud d’arborescence de l’expression peut être réduit.Gets a value that indicates whether the expression tree node can be reduced.

NewExpression

Obtient l'expression qui représente l'appel de constructeur.Gets the expression that represents the constructor call.

NodeType

Retourne le type de nœud de cette expression.Returns the node type of this Expression. Les nœuds d’extension doivent retourner Extension lors de la substitution de cette méthode.Extension nodes should return Extension when overriding this method.

Type

Obtient le type statique de l'expression que ce Expression représente.Gets the static type of the expression that this Expression represents.

Méthodes

Accept(ExpressionVisitor)

Distribue à la méthode de visite spécifique à ce type de nœud.Dispatches to the specific visit method for this node type. Par exemple, MethodCallExpression appelle VisitMethodCall(MethodCallExpression).For example, MethodCallExpression calls the VisitMethodCall(MethodCallExpression).

(Hérité de Expression)
Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.Determines whether the specified object is equal to the current object.

(Hérité de Object)
GetHashCode()

Sert de fonction de hachage par défaut.Serves as the default hash function.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
Reduce()

Réduit MemberInitExpression à une expression plus simple.Reduces the MemberInitExpression to a simpler expression.

ReduceAndCheck()

Réduit le nœud en une expression plus simple.Reduces this node to a simpler expression. Si CanReduce retourne la valeur true, cela doit retourner une expression valide.If CanReduce returns true, this should return a valid expression. Cette méthode peut retourner un autre nœud qui doit lui-même être réduit.This method can return another node which itself must be reduced.

(Hérité de Expression)
ReduceExtensions()

Réduit l'expression à un type de nœud connu (qui n'est pas un nœud Extension) ou retourne simplement l'expression s'il s'agit d'un type déjà connu.Reduces the expression to a known node type (that is not an Extension node) or just returns the expression if it is already a known type.

(Hérité de Expression)
ToString()

Retourne une représentation textuelle de Expression.Returns a textual representation of the Expression.

(Hérité de Expression)
Update(NewExpression, IEnumerable<MemberBinding>)

Crée une expression qui est semblable à celle-ci, mais en utilisant les enfants fournis.Creates a new expression that is like this one, but using the supplied children. Si tous les enfants sont identiques, cette expression est retournée.If all of the children are the same, it will return this expression.

VisitChildren(ExpressionVisitor)

Réduit le nœud puis appelle le délégué visiteur sur l'expression réduite.Reduces the node and then calls the visitor delegate on the reduced expression. La méthode lève une exception si le nœud n'est pas réductible.The method throws an exception if the node is not reducible.

(Hérité de Expression)

S’applique à