Expression.MemberInit Méthode

Définition

Représente une expression qui crée un nouvel objet et initialise une propriété de l'objet.

Surcharges

MemberInit(NewExpression, IEnumerable<MemberBinding>)

Représente une expression qui crée un nouvel objet et initialise une propriété de l'objet.

MemberInit(NewExpression, MemberBinding[])

Crée un MemberInitExpression.

MemberInit(NewExpression, IEnumerable<MemberBinding>)

Source:
MemberInitExpression.cs
Source:
MemberInitExpression.cs
Source:
MemberInitExpression.cs

Représente une expression qui crée un nouvel objet et initialise une propriété de l'objet.

C#
public static System.Linq.Expressions.MemberInitExpression MemberInit (System.Linq.Expressions.NewExpression newExpression, System.Collections.Generic.IEnumerable<System.Linq.Expressions.MemberBinding> bindings);

Paramètres

newExpression
NewExpression

NewExpression auquel la propriété NewExpression doit être égale.

bindings
IEnumerable<MemberBinding>

IEnumerable<T> qui contient des objets MemberBinding à utiliser pour remplir la collection Bindings.

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.

Exceptions

newExpression ou bindings est null.

La propriété Member d'un élément bindings ne représente pas un membre du type représenté par newExpression.Type.

Exemples

L’exemple suivant illustre une expression qui crée un objet et initialise une propriété de l’objet.

C#

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

Remarques

La Type propriété du résultat MemberInitExpression est égale à la Type propriété de newExpression.

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

MemberInit(NewExpression, MemberBinding[])

Source:
MemberInitExpression.cs
Source:
MemberInitExpression.cs
Source:
MemberInitExpression.cs
C#
public static System.Linq.Expressions.MemberInitExpression MemberInit (System.Linq.Expressions.NewExpression newExpression, params System.Linq.Expressions.MemberBinding[] bindings);

Paramètres

newExpression
NewExpression

NewExpression auquel la propriété NewExpression doit être égale.

bindings
MemberBinding[]

Tableau d'objets MemberBinding à utiliser pour remplir la collection Bindings.

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.

Exceptions

newExpression ou bindings est null.

La propriété Member d'un élément bindings ne représente pas un membre du type représenté par newExpression.Type.

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.

C#
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}
}

Remarques

La Type propriété du résultat MemberInitExpression est égale à la Type propriété de newExpression.

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0