Expression.MemberInit Yöntem

Tanım

Yeni bir nesne oluşturan ve nesnenin bir özelliğini başlatan bir ifadeyi temsil eder.

Aşırı Yüklemeler

MemberInit(NewExpression, IEnumerable<MemberBinding>)

Yeni bir nesne oluşturan ve nesnenin bir özelliğini başlatan bir ifadeyi temsil eder.

MemberInit(NewExpression, MemberBinding[])

bir MemberInitExpressionoluşturur.

MemberInit(NewExpression, IEnumerable<MemberBinding>)

Kaynak:
MemberInitExpression.cs
Kaynak:
MemberInitExpression.cs
Kaynak:
MemberInitExpression.cs

Yeni bir nesne oluşturan ve nesnenin bir özelliğini başlatan bir ifadeyi temsil eder.

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

Parametreler

newExpression
NewExpression

Özelliğinin NewExpression değerine eşit olarak ayarlanması için ANewExpression.

bindings
IEnumerable<MemberBinding>

IEnumerable<T> Koleksiyonu doldurmak Bindings için kullanılacak nesneleri içerenMemberBinding.

Döndürülenler

MemberInitExpression özelliğine MemberInitNodeType eşit olan ve ve BindingsNewExpression özellikleri belirtilen değerlere ayarlanmış bir.

Özel durumlar

newExpression veya bindings şeklindedir null.

Member öğesinin bindings özelliği, türündeki newExpressionbir üyeyi temsil etmez. Tür temsil eder.

Örnekler

Aşağıdaki örnek, yeni bir nesne oluşturan ve nesnenin bir özelliğini başlatan bir ifadeyi gösterir.

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

Açıklamalar

Sonuçta TypeMemberInitExpression elde edilen özelliği özelliğine TypenewExpressioneşittir.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.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[])

Kaynak:
MemberInitExpression.cs
Kaynak:
MemberInitExpression.cs
Kaynak:
MemberInitExpression.cs

bir MemberInitExpressionoluşturur.

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

Parametreler

newExpression
NewExpression

Özelliğinin NewExpression değerine eşit olarak ayarlanması için ANewExpression.

bindings
MemberBinding[]

Koleksiyonu doldurmak Bindings için kullanılacak nesne dizisiMemberBinding.

Döndürülenler

MemberInitExpression özelliğine MemberInitNodeType eşit olan ve ve BindingsNewExpression özellikleri belirtilen değerlere ayarlanmış bir.

Özel durumlar

newExpression veya bindings şeklindedir null.

Member öğesinin bindings özelliği, türündeki newExpressionbir üyeyi temsil etmez. Tür temsil eder.

Örnekler

Aşağıdaki örnek, yeni bir nesnenin iki üyesinin MemberInit(NewExpression, MemberBinding[]) başlatılmasını temsil eden bir MemberInitExpression oluşturmak için yönteminin nasıl kullanılacağını gösterir.

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

Açıklamalar

Sonuçta TypeMemberInitExpression elde edilen özelliği özelliğine TypenewExpressioneşittir.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.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