Expression.ElementInit メソッド

定義

ElementInit を作成します。

オーバーロード

ElementInit(MethodInfo, IEnumerable<Expression>)

2 番目の引数として ElementInit を指定して、IEnumerable<T> を作成します。

ElementInit(MethodInfo, Expression[])

2 番目の引数として値の配列を指定して、ElementInit を作成します。

ElementInit(MethodInfo, IEnumerable<Expression>)

ソース:
ElementInit.cs
ソース:
ElementInit.cs
ソース:
ElementInit.cs

2 番目の引数として ElementInit を指定して、IEnumerable<T> を作成します。

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

パラメーター

addMethod
MethodInfo

MethodInfo プロパティを等しく設定する AddMethod

arguments
IEnumerable<Expression>

IEnumerable<T> プロパティを等しく設定する Expression オブジェクトを含む Arguments

戻り値

指定した値に設定された ElementInit プロパティおよび AddMethod プロパティを含む Arguments

例外

addMethod または argumentsnull です。

addMethod が表すメソッドに、"Add" (大文字と小文字を区別しない) の名前が付いていません。

- または -

addMethod が表すメソッドは、インスタンス メソッドではありません。

- または -

arguments には、addMethod が表すメソッドのパラメーターの数と同じ数の要素が含まれていません。

- または -

arguments の 1 つ以上の要素の Type プロパティが、addMethod の表すメソッドの対応するパラメーターの型に割り当てることができません。

次の例では、 メソッドを使用して、 メソッドをElementInit(MethodInfo, Expression[])呼び出してAddディクショナリ コレクションの要素を初期化する を表す を作成ElementInitする方法を示します。

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

注釈

パラメーターは、"Add" という名前のインスタンス メソッドを表す必要があります (大文字と小文字は addMethod 区別されません)。 add メソッドは、 内の要素 argumentsの数と同じ数のパラメーターを持つ必要があります。 の各要素の プロパティはType引用符arguments囲む後に、add メソッドの対応するパラメーターの型に割り当て可能である必要があります。

Note

要素は、対応するメソッド パラメーターが 型 Expressionの場合にのみ引用符で囲まれます。 引用符は、要素がノードに Quote ラップされていることを意味します。 結果のノードは、 UnaryExpression プロパティが Operandarguments要素である です。

適用対象

ElementInit(MethodInfo, Expression[])

ソース:
ElementInit.cs
ソース:
ElementInit.cs
ソース:
ElementInit.cs

2 番目の引数として値の配列を指定して、ElementInit を作成します。

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

パラメーター

addMethod
MethodInfo

MethodInfo プロパティを等しく設定する AddMethod

arguments
Expression[]

Expression プロパティを等しく設定する Arguments オブジェクトの配列。

戻り値

指定した値に設定された ElementInit プロパティおよび AddMethod プロパティを含む Arguments

例外

addMethod または argumentsnull です。

addMethod が表すメソッドの名前が "Add" (大文字と小文字は区別されません) ではありません。

- または -

addMethod が表すメソッドが、インスタンス メソッドではありません。

- または -

arguments に、addMethod が表すメソッドのパラメーターの数と同じ数の要素が含まれていません。

- または -

arguments の 1 つ以上の要素の Type プロパティが、addMethod の表すメソッドの対応するパラメーターの型に割り当てることができません。

次の例では、 メソッドを使用して、 メソッドをElementInit(MethodInfo, Expression[])呼び出してAddディクショナリ コレクションの要素を初期化する を表す を作成ElementInitする方法を示します。

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

注釈

パラメーターは、"Add" という名前のインスタンス メソッドを表す必要があります (大文字と小文字は addMethod 区別されません)。 add メソッドは、 内の要素 argumentsの数と同じ数のパラメーターを持つ必要があります。 の各要素の プロパティはType引用符arguments囲む後に、add メソッドの対応するパラメーターの型に割り当て可能である必要があります。

Note

要素は、対応するメソッド パラメーターが 型 Expressionの場合にのみ引用符で囲まれます。 引用符は、要素がノードに Quote ラップされていることを意味します。 結果のノードは、 UnaryExpression プロパティが Operandarguments要素である です。

適用対象