Bagikan melalui


MemberInitExpression Kelas

Definisi

Mewakili panggilan konstruktor dan menginisialisasi satu atau beberapa anggota objek baru.

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
Warisan
MemberInitExpression

Contoh

Contoh berikut membuat MemberInitExpression yang mewakili inisialisasi dua anggota objek baru.

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

Keterangan

MemberInit Gunakan metode pabrik untuk membuat MemberInitExpression.

Nilai NodeType properti dari adalah MemberInitExpressionMemberInit.

Properti

Nama Deskripsi
Bindings

Mendapatkan pengikatan yang menjelaskan cara menginisialisasi anggota objek yang baru dibuat.

CanReduce

Mendapatkan nilai yang menunjukkan apakah simpul pohon ekspresi dapat dikurangi.

NewExpression

Mendapatkan ekspresi yang mewakili panggilan konstruktor.

NodeType

Mengembalikan jenis node ekspresi ini. Simpul ekstensi harus kembali Extension saat mengambil alih metode ini.

NodeType

Mendapatkan jenis node ini Expression.

(Diperoleh dari Expression)
Type

Mendapatkan jenis ekspresi statis yang diwakili ini Expression .

Type

Mendapatkan jenis ekspresi statis yang diwakili ini Expression .

(Diperoleh dari Expression)

Metode

Nama Deskripsi
Accept(ExpressionVisitor)

Mengirimkan ke metode kunjungan tertentu untuk jenis node ini. Misalnya, MethodCallExpression memanggil VisitMethodCall(MethodCallExpression).

(Diperoleh dari Expression)
Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
Reduce()

MemberInitExpression Mengurangi ke ekspresi yang lebih sederhana.

ReduceAndCheck()

Mengurangi simpul ini menjadi ekspresi yang lebih sederhana. Jika CanReduce mengembalikan true, ini akan mengembalikan ekspresi yang valid. Metode ini dapat mengembalikan simpul lain yang harus dikurangi.

(Diperoleh dari Expression)
ReduceExtensions()

Mengurangi ekspresi ke jenis node yang diketahui (yang bukan node Ekstensi) atau hanya mengembalikan ekspresi jika sudah merupakan jenis yang diketahui.

(Diperoleh dari Expression)
ToString()

Mengembalikan representasi tekstual dari Expression.

(Diperoleh dari Expression)
Update(NewExpression, IEnumerable<MemberBinding>)

Membuat ekspresi baru yang seperti ini, tetapi menggunakan anak-anak yang disediakan. Jika semua anak sama, itu akan mengembalikan ekspresi ini.

VisitChildren(ExpressionVisitor)

Mengurangi simpul lalu memanggil delegasi pengunjung pada ekspresi yang dikurangi. Metode ini melemparkan pengecualian jika node tidak dapat dididik ulang.

(Diperoleh dari Expression)

Berlaku untuk