Bagikan melalui


Expression.ElementInit Metode

Definisi

Membuat sebuah ElementInit.

Overload

ElementInit(MethodInfo, IEnumerable<Expression>)

ElementInitMembuat , yang diberikan IEnumerable<T> sebagai argumen kedua.

ElementInit(MethodInfo, Expression[])

ElementInitMembuat , yang diberi array nilai sebagai argumen kedua.

ElementInit(MethodInfo, IEnumerable<Expression>)

Sumber:
ElementInit.cs
Sumber:
ElementInit.cs
Sumber:
ElementInit.cs

ElementInitMembuat , yang diberikan IEnumerable<T> sebagai argumen kedua.

public:
 static System::Linq::Expressions::ElementInit ^ ElementInit(System::Reflection::MethodInfo ^ addMethod, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.ElementInit ElementInit (System.Reflection.MethodInfo addMethod, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> arguments);
static member ElementInit : System.Reflection.MethodInfo * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.ElementInit
Public Shared Function ElementInit (addMethod As MethodInfo, arguments As IEnumerable(Of Expression)) As ElementInit

Parameter

addMethod
MethodInfo

A MethodInfo untuk mengatur AddMethod properti sama dengan.

arguments
IEnumerable<Expression>

Yang IEnumerable<T> berisi Expression objek untuk mengatur properti yang Arguments sama dengan.

Mengembalikan

Properti ElementInit dan Arguments yang AddMethod diatur ke nilai yang ditentukan.

Pengecualian

addMethod atau arguments adalah null.

Metode yang addMethod mewakili tidak bernama "Tambahkan" (tidak peka huruf besar/kecil).

-atau-

Metode yang addMethod mewakili bukan metode instans.

-atau-

arguments tidak berisi jumlah elemen yang sama dengan jumlah parameter untuk metode yang addMethod diwakili.

-atau-

Properti Type dari satu atau beberapa elemen arguments tidak dapat ditetapkan ke jenis parameter yang sesuai dari metode yang addMethod mewakili.

Contoh

Contoh berikut menunjukkan cara menggunakan ElementInit(MethodInfo, Expression[]) metode untuk membuat ElementInit yang mewakili pemanggilan Add metode untuk menginisialisasi elemen koleksi kamus.

string tree = "maple";

System.Reflection.MethodInfo addMethod = typeof(Dictionary<int, string>).GetMethod("Add");

// Create an ElementInit that represents calling
// Dictionary<int, string>.Add(tree.Length, tree).
System.Linq.Expressions.ElementInit elementInit =
    System.Linq.Expressions.Expression.ElementInit(
        addMethod,
        System.Linq.Expressions.Expression.Constant(tree.Length),
        System.Linq.Expressions.Expression.Constant(tree));

Console.WriteLine(elementInit.ToString());

// This code produces the following output:
//
// Void Add(Int32, System.String)(5,"maple")
Dim tree As String = "maple"

Dim addMethod As System.Reflection.MethodInfo = _
    Type.GetType("System.Collections.Generic.Dictionary`2[System.Int32, System.String]").GetMethod("Add")

' Create an ElementInit that represents calling
' Dictionary(Of Integer, String).Add(tree.Length, tree).
Dim elementInit As System.Linq.Expressions.ElementInit = _
    System.Linq.Expressions.Expression.ElementInit( _
        addMethod, _
        System.Linq.Expressions.Expression.Constant(tree.Length), _
        System.Linq.Expressions.Expression.Constant(tree))

Console.WriteLine(elementInit.ToString())

' This code produces the following output:
'
' Void Add(Int32, System.String)(5,"maple")

Keterangan

Parameter addMethod harus mewakili metode instans bernama "Tambahkan" (tidak peka huruf besar/kecil). Metode tambahkan harus memiliki jumlah parameter yang sama dengan jumlah elemen di arguments. Properti Type dari setiap elemen di arguments harus dapat ditetapkan ke jenis parameter yang sesuai dari metode tambahkan, mungkin setelah mengutip.

Catatan

Elemen akan dikutip hanya jika parameter metode yang sesuai berjenis Expression. Mengutip berarti elemen dibungkus dalam simpul Quote . Simpul yang dihasilkan adalah yang UnaryExpression propertinya Operand adalah elemen dari arguments.

Berlaku untuk

ElementInit(MethodInfo, Expression[])

Sumber:
ElementInit.cs
Sumber:
ElementInit.cs
Sumber:
ElementInit.cs

ElementInitMembuat , yang diberi array nilai sebagai argumen kedua.

public:
 static System::Linq::Expressions::ElementInit ^ ElementInit(System::Reflection::MethodInfo ^ addMethod, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.ElementInit ElementInit (System.Reflection.MethodInfo addMethod, params System.Linq.Expressions.Expression[] arguments);
static member ElementInit : System.Reflection.MethodInfo * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.ElementInit
Public Shared Function ElementInit (addMethod As MethodInfo, ParamArray arguments As Expression()) As ElementInit

Parameter

addMethod
MethodInfo

A MethodInfo untuk mengatur AddMethod properti sama dengan.

arguments
Expression[]

Array Expression objek untuk mengatur Arguments properti sama dengan.

Mengembalikan

Properti ElementInit dan Arguments yang AddMethod diatur ke nilai yang ditentukan.

Pengecualian

addMethod atau arguments adalah null.

Metode yang diwakili addMethod tidak bernama "Tambahkan" (tidak peka huruf besar/kecil).

-atau-

Metode yang diwakili addMethod bukanlah metode instans.

-atau-

argumen tidak berisi jumlah elemen yang sama dengan jumlah parameter untuk metode yang diwakili addMethod.

-atau-

Properti Type dari satu atau beberapa elemen arguments tidak dapat ditetapkan ke jenis parameter yang sesuai dari metode yang addMethod mewakili.

Contoh

Contoh berikut menunjukkan cara menggunakan ElementInit(MethodInfo, Expression[]) metode untuk membuat ElementInit yang mewakili pemanggilan Add metode untuk menginisialisasi elemen koleksi kamus.

string tree = "maple";

System.Reflection.MethodInfo addMethod = typeof(Dictionary<int, string>).GetMethod("Add");

// Create an ElementInit that represents calling
// Dictionary<int, string>.Add(tree.Length, tree).
System.Linq.Expressions.ElementInit elementInit =
    System.Linq.Expressions.Expression.ElementInit(
        addMethod,
        System.Linq.Expressions.Expression.Constant(tree.Length),
        System.Linq.Expressions.Expression.Constant(tree));

Console.WriteLine(elementInit.ToString());

// This code produces the following output:
//
// Void Add(Int32, System.String)(5,"maple")
Dim tree As String = "maple"

Dim addMethod As System.Reflection.MethodInfo = _
    Type.GetType("System.Collections.Generic.Dictionary`2[System.Int32, System.String]").GetMethod("Add")

' Create an ElementInit that represents calling
' Dictionary(Of Integer, String).Add(tree.Length, tree).
Dim elementInit As System.Linq.Expressions.ElementInit = _
    System.Linq.Expressions.Expression.ElementInit( _
        addMethod, _
        System.Linq.Expressions.Expression.Constant(tree.Length), _
        System.Linq.Expressions.Expression.Constant(tree))

Console.WriteLine(elementInit.ToString())

' This code produces the following output:
'
' Void Add(Int32, System.String)(5,"maple")

Keterangan

Parameter addMethod harus mewakili metode instans bernama "Tambahkan" (tidak peka huruf besar/kecil). Metode tambahkan harus memiliki jumlah parameter yang sama dengan jumlah elemen di arguments. Properti Type dari setiap elemen di arguments harus dapat ditetapkan ke jenis parameter yang sesuai dari metode tambahkan, mungkin setelah mengutip.

Catatan

Elemen akan dikutip hanya jika parameter metode yang sesuai berjenis Expression. Mengutip berarti elemen dibungkus dalam simpul Quote . Simpul yang dihasilkan adalah yang UnaryExpression propertinya Operand adalah elemen dari arguments.

Berlaku untuk