Expression.ElementInit Yöntem

Tanım

oluşturur ElementInit.

Aşırı Yüklemeler

ElementInit(MethodInfo, IEnumerable<Expression>)

İkinci bağımsız değişken olarak verilen bir ElementInitIEnumerable<T> oluşturur.

ElementInit(MethodInfo, Expression[])

İkinci bağımsız değişken olarak bir değer dizisi verilen bir ElementInitoluşturur.

ElementInit(MethodInfo, IEnumerable<Expression>)

Kaynak:
ElementInit.cs
Kaynak:
ElementInit.cs
Kaynak:
ElementInit.cs

İkinci bağımsız değişken olarak verilen bir ElementInitIEnumerable<T> oluşturur.

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

Parametreler

addMethod
MethodInfo

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

arguments
IEnumerable<Expression>

IEnumerable<T> Özelliğinin eşit olarak ayarlanacağı Arguments nesneleri içeren Expression bir.

Döndürülenler

ElementInit belirtilen değerlere AddMethod ayarlanmış ve Arguments özelliklerine sahip bir.

Özel durumlar

addMethod veya arguments şeklindedir null.

Temsil eden addMethod yöntem "Ekle" (büyük/küçük harfe duyarsız) olarak adlandırılmaz.

-veya-

Temsil eden addMethod yöntem bir örnek yöntemi değildir.

-veya-

arguments , temsil eden addMethod yöntemin parametre sayısıyla aynı sayıda öğe içermez.

-veya-

Type bir veya daha fazla öğesinin arguments özelliği, temsil eden addMethod yöntemin karşılık gelen parametresinin türüne atanamaz.

Örnekler

Aşağıdaki örnek, bir sözlük koleksiyonunun ElementInit(MethodInfo, Expression[]) bir öğesini başlatmak için yöntemini çağıran Add bir oluşturmak ElementInit için yönteminin nasıl kullanılacağını gösterir.

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")

Açıklamalar

parametresinin addMethod "Add" adlı bir örnek yöntemini (büyük/küçük harfe duyarsız) temsil etmesi gerekir. add yöntemi, içindeki argumentsöğe sayısıyla aynı sayıda parametreye sahip olmalıdır. içindeki her öğenin özelliği, muhtemelen alıntı yaptıktan sonra add yönteminin karşılık gelen parametresinin türüne atanabilir olmalıdır.argumentsType

Not

Bir öğe yalnızca karşılık gelen yöntem parametresi türündeyse Expressiontırnak içine alınır. Alıntı, öğenin bir Quote düğümde sarmalanması anlamına gelir. Sonuçta elde edilen düğüm, özelliği öğesi olan bir UnaryExpressionOperand düğümdür arguments.

Şunlara uygulanır

ElementInit(MethodInfo, Expression[])

Kaynak:
ElementInit.cs
Kaynak:
ElementInit.cs
Kaynak:
ElementInit.cs

İkinci bağımsız değişken olarak bir değer dizisi verilen bir ElementInitoluşturur.

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

Parametreler

addMethod
MethodInfo

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

arguments
Expression[]

Özelliğinin Expression eşit olarak ayarlanacağı Arguments bir nesne dizisi.

Döndürülenler

ElementInit belirtilen değerlere AddMethod ayarlanmış ve Arguments özelliklerine sahip bir.

Özel durumlar

addMethod veya arguments şeklindedir null.

addMethod tarafından temsil edilen yöntem "Add" (büyük/küçük harfe duyarsız) olarak adlandırılmaz.

-veya-

addMethod'un temsil eden yöntemi bir örnek yöntemi değildir.

-veya-

bağımsız değişkenleri, addMethod tarafından temsil edilen yöntemin parametre sayısıyla aynı sayıda öğe içermez.

-veya-

Type bir veya daha fazla öğesinin arguments özelliği, temsil eden addMethod yöntemin karşılık gelen parametresinin türüne atanamaz.

Örnekler

Aşağıdaki örnek, bir sözlük koleksiyonunun ElementInit(MethodInfo, Expression[]) bir öğesini başlatmak için yöntemini çağıran Add bir oluşturmak ElementInit için yönteminin nasıl kullanılacağını gösterir.

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")

Açıklamalar

parametresinin addMethod "Add" adlı bir örnek yöntemini (büyük/küçük harfe duyarsız) temsil etmesi gerekir. add yöntemi, içindeki argumentsöğe sayısıyla aynı sayıda parametreye sahip olmalıdır. içindeki her öğenin özelliği, muhtemelen alıntı yaptıktan sonra add yönteminin karşılık gelen parametresinin türüne atanabilir olmalıdır.argumentsType

Not

Bir öğe yalnızca karşılık gelen yöntem parametresi türündeyse Expressiontırnak içine alınır. Alıntı, öğenin bir Quote düğümde sarmalanması anlamına gelir. Sonuçta elde edilen düğüm, özelliği öğesi olan bir UnaryExpressionOperand düğümdür arguments.

Şunlara uygulanır