Expression.MemberInit Méthode

Définition

Représente une expression qui crée un nouvel objet et initialise une propriété de l'objet.Represents an expression that creates a new object and initializes a property of the object.

Surcharges

MemberInit(NewExpression, IEnumerable<MemberBinding>)

Représente une expression qui crée un nouvel objet et initialise une propriété de l'objet.Represents an expression that creates a new object and initializes a property of the object.

MemberInit(NewExpression, MemberBinding[])

Crée un MemberInitExpression.Creates a MemberInitExpression.

MemberInit(NewExpression, IEnumerable<MemberBinding>)

Représente une expression qui crée un nouvel objet et initialise une propriété de l'objet.Represents an expression that creates a new object and initializes a property of the object.

public:
 static System::Linq::Expressions::MemberInitExpression ^ MemberInit(System::Linq::Expressions::NewExpression ^ newExpression, System::Collections::Generic::IEnumerable<System::Linq::Expressions::MemberBinding ^> ^ bindings);
public static System.Linq.Expressions.MemberInitExpression MemberInit (System.Linq.Expressions.NewExpression newExpression, System.Collections.Generic.IEnumerable<System.Linq.Expressions.MemberBinding> bindings);
static member MemberInit : System.Linq.Expressions.NewExpression * seq<System.Linq.Expressions.MemberBinding> -> System.Linq.Expressions.MemberInitExpression

Paramètres

newExpression
NewExpression

NewExpression auquel la propriété NewExpression doit être égale.A NewExpression to set the NewExpression property equal to.

bindings
IEnumerable<MemberBinding>

IEnumerable<T> qui contient des objets MemberBinding à utiliser pour remplir la collection Bindings.An IEnumerable<T> that contains MemberBinding objects to use to populate the Bindings collection.

Retours

MemberInitExpression dont la propriété NodeType est égale à MemberInit et dont les propriétés NewExpression et Bindings ont les valeurs spécifiées.A MemberInitExpression that has the NodeType property equal to MemberInit and the NewExpression and Bindings properties set to the specified values.

Exceptions

newExpression ou bindings est null.newExpression or bindings is null.

La propriété Member d'un élément bindings ne représente pas un membre du type représenté par newExpression.Type.The Member property of an element of bindings does not represent a member of the type that newExpression.Type represents.

Exemples

L’exemple suivant illustre une expression qui crée un nouvel objet et Initialise une propriété de l’objet.The following example demonstrates an expression that creates a new object and initializes a property of the object.


// Add the following directive to your file:
// using System.Linq.Expressions;  

class TestMemberInitClass
{
    public int sample { get; set; }
}

static void MemberInit()
{   
    // This expression creates a new TestMemberInitClass object
    // and assigns 10 to its sample property.
    Expression testExpr = Expression.MemberInit(
        Expression.New(typeof(TestMemberInitClass)),
        new List<MemberBinding>() {
            Expression.Bind(typeof(TestMemberInitClass).GetMember("sample")[0], Expression.Constant(10))
        }
    );

    // The following statement first creates an expression tree,
    // then compiles it, and then runs it.
    var test = Expression.Lambda<Func<TestMemberInitClass>>(testExpr).Compile()();
    Console.WriteLine(test.sample);
}

// This code example produces the following output:
//
// 10
' Add the following directive to your file:
' Imports System.Linq.Expressions  

Class TestMemberInitClass
    Public Property Sample As Integer
End Class

Sub MemberInit()
    ' This expression creates a new TestMemberInitClass object
    ' and assigns 10 to its Sample property.
    Dim testExpr As Expression = Expression.MemberInit(
        Expression.[New](GetType(TestMemberInitClass)),
        New List(Of MemberBinding)() From {
            Expression.Bind(GetType(TestMemberInitClass).GetMember("Sample")(0), Expression.Constant(10))
        }
    )

    ' The following statement first creates an expression tree,
    ' then compiles it, and then runs it.
    Dim test = Expression.Lambda(Of Func(Of TestMemberInitClass))(testExpr).Compile()()
    Console.WriteLine(test.Sample)
End Sub

' This code example produces the following output:
'
' 10

Remarques

La Type propriété du résultant MemberInitExpression est égale à la Type propriété de newExpression.The Type property of the resulting MemberInitExpression is equal to the Type property of newExpression.

MemberInit(NewExpression, MemberBinding[])

Crée un MemberInitExpression.Creates a MemberInitExpression.

public:
 static System::Linq::Expressions::MemberInitExpression ^ MemberInit(System::Linq::Expressions::NewExpression ^ newExpression, ... cli::array <System::Linq::Expressions::MemberBinding ^> ^ bindings);
public static System.Linq.Expressions.MemberInitExpression MemberInit (System.Linq.Expressions.NewExpression newExpression, params System.Linq.Expressions.MemberBinding[] bindings);
static member MemberInit : System.Linq.Expressions.NewExpression * System.Linq.Expressions.MemberBinding[] -> System.Linq.Expressions.MemberInitExpression

Paramètres

newExpression
NewExpression

NewExpression auquel la propriété NewExpression doit être égale.A NewExpression to set the NewExpression property equal to.

bindings
MemberBinding[]

Tableau d'objets MemberBinding à utiliser pour remplir la collection Bindings.An array of MemberBinding objects to use to populate the Bindings collection.

Retours

MemberInitExpression dont la propriété NodeType est égale à MemberInit et dont les propriétés NewExpression et Bindings ont les valeurs spécifiées.A MemberInitExpression that has the NodeType property equal to MemberInit and the NewExpression and Bindings properties set to the specified values.

Exceptions

newExpression ou bindings a la valeur null.newExpression or bindings is null.

La propriété Member d'un élément bindings ne représente pas un membre du type représenté par newExpression.Type.The Member property of an element of bindings does not represent a member of the type that newExpression.Type represents.

Exemples

L’exemple suivant montre comment utiliser la MemberInit(NewExpression, MemberBinding[]) méthode pour créer un MemberInitExpression qui représente l’initialisation de deux membres d’un nouvel objet.The following example demonstrates how to use the MemberInit(NewExpression, MemberBinding[]) method to create 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

La Type propriété du résultant MemberInitExpression est égale à la Type propriété de newExpression.The Type property of the resulting MemberInitExpression is equal to the Type property of newExpression.

S’applique à