Aracılığıyla paylaş


Expression.ElementInit Yöntem

Tanım

bir ElementInitoluşturur.

Aşırı Yüklemeler

Name Description
ElementInit(MethodInfo, IEnumerable<Expression>)

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

ElementInit(MethodInfo, Expression[])

ElementInitİkinci bağımsız değişken olarak bir değer dizisi verilip bir oluşturur.

ElementInit(MethodInfo, IEnumerable<Expression>)

Kaynak:
ElementInit.cs
Kaynak:
ElementInit.cs
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 AddMethod ve Arguments özellikleri belirtilen değerlere ayarlanmış 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 öğesinin bir veya daha fazla öğesinin arguments özelliği, temsil eden addMethod yöntemin ilgili parametresinin türüne atanamaz.

Örnekler

Aşağıdaki örnek, bir sözlük koleksiyonunun ElementInit(MethodInfo, Expression[]) öğ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" (büyük/küçük harfe duyarsız) adlı bir örnek yöntemini 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, büyük olasılıkla alıntı yaptıktan sonra add yönteminin karşılık gelen parametresinin türüne atanabilir olmalıdır.argumentsType

Uyarı

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

Şunlara uygulanır

ElementInit(MethodInfo, Expression[])

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

ElementInitİkinci bağımsız değişken olarak bir değer dizisi verilip bir oluş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 AddMethod ve Arguments özellikleri belirtilen değerlere ayarlanmış bir.

Özel durumlar

addMethod veya arguments şeklindedir null.

addMethod'un temsil ettiği yöntem "Ekle" olarak adlandırılmaz (büyük/küçük harfe duyarsız).

-veya-

addMethod'un temsil ettiği yöntem bir örnek yöntemi değildir.

-veya-

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

-veya-

Type öğesinin bir veya daha fazla öğesinin arguments özelliği, temsil eden addMethod yöntemin ilgili parametresinin türüne atanamaz.

Örnekler

Aşağıdaki örnek, bir sözlük koleksiyonunun ElementInit(MethodInfo, Expression[]) öğ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" (büyük/küçük harfe duyarsız) adlı bir örnek yöntemini 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, büyük olasılıkla alıntı yaptıktan sonra add yönteminin karşılık gelen parametresinin türüne atanabilir olmalıdır.argumentsType

Uyarı

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

Şunlara uygulanır