Expression.ElementInit Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Crea un oggetto ElementInit.
Overload
ElementInit(MethodInfo, IEnumerable<Expression>) |
Crea un oggetto ElementInit, dato IEnumerable<T> come secondo argomento. |
ElementInit(MethodInfo, Expression[]) |
Crea un oggetto ElementInit, data una matrice di valori come secondo argomento. |
ElementInit(MethodInfo, IEnumerable<Expression>)
- Origine:
- ElementInit.cs
- Origine:
- ElementInit.cs
- Origine:
- ElementInit.cs
Crea un oggetto ElementInit, dato IEnumerable<T> come secondo argomento.
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
Parametri
- addMethod
- MethodInfo
Oggetto MethodInfo su cui impostare la proprietà AddMethod.
- arguments
- IEnumerable<Expression>
Oggetto IEnumerable<T> che contiene gli oggetti Expression su cui impostare la proprietà Arguments.
Restituisce
Oggetto ElementInit le cui proprietà AddMethod e Arguments sono impostate sui valori specificati.
Eccezioni
addMethod
o arguments
è null
.
Il metodo rappresentato da addMethod
non è denominato "Add" (senza distinzione tra maiuscole e minuscole).
-oppure-
Il metodo rappresentato da addMethod
non è un metodo di istanza.
-oppure-
arguments
non contiene lo stesso numero di elementi dei parametri del metodo rappresentato da addMethod
.
-oppure-
La proprietà Type di uno o più elementi di arguments
non può essere assegnata al tipo del parametro corrispondente del metodo rappresentato da addMethod
.
Esempio
Nell'esempio seguente viene illustrato come utilizzare il ElementInit(MethodInfo, Expression[]) metodo per creare un ElementInit oggetto che rappresenta la chiamata al Add metodo per inizializzare un elemento di una raccolta dizionario.
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")
Commenti
Il addMethod
parametro deve rappresentare un metodo di istanza denominato "Add" (senza distinzione tra maiuscole e minuscole). Il metodo add deve avere lo stesso numero di parametri del numero di elementi in arguments
. La Type proprietà di ogni elemento in arguments
deve essere assegnabile al tipo del parametro corrispondente del metodo add, possibilmente dopo l'inserimento tra virgolette.
Nota
Un elemento verrà racchiuso tra virgolette solo se il parametro del metodo corrispondente è di tipo Expression. Virgolette significa che l'elemento viene racchiuso in un Quote nodo. Il nodo risultante è un oggetto UnaryExpression la cui Operand proprietà è l'elemento di arguments
.
Si applica a
ElementInit(MethodInfo, Expression[])
- Origine:
- ElementInit.cs
- Origine:
- ElementInit.cs
- Origine:
- ElementInit.cs
Crea un oggetto ElementInit, data una matrice di valori come secondo argomento.
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
Parametri
- addMethod
- MethodInfo
Oggetto MethodInfo su cui impostare la proprietà AddMethod.
- arguments
- Expression[]
Matrice di oggetti Expression su cui impostare la proprietà Arguments.
Restituisce
Oggetto ElementInit le cui proprietà AddMethod e Arguments sono impostate sui valori specificati.
Eccezioni
addMethod
o arguments
è null
.
Il metodo che addMethod rappresenta non è denominato "Add" (senza distinzione tra maiuscole e minuscole).
-oppure-
Il metodo che addMethod rappresenta non è un metodo di istanza.
-oppure-
Il numero di elementi in arguments è diverso dal numero di parametri del metodo rappresentato da addMethod.
-oppure-
La proprietà Type di uno o più elementi di arguments
non può essere assegnata al tipo del parametro corrispondente del metodo rappresentato da addMethod
.
Esempio
Nell'esempio seguente viene illustrato come utilizzare il ElementInit(MethodInfo, Expression[]) metodo per creare un ElementInit oggetto che rappresenta la chiamata al Add metodo per inizializzare un elemento di una raccolta dizionario.
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")
Commenti
Il addMethod
parametro deve rappresentare un metodo di istanza denominato "Add" (senza distinzione tra maiuscole e minuscole). Il metodo add deve avere lo stesso numero di parametri del numero di elementi in arguments
. La Type proprietà di ogni elemento in arguments
deve essere assegnabile al tipo del parametro corrispondente del metodo add, possibilmente dopo l'inserimento tra virgolette.
Nota
Un elemento verrà racchiuso tra virgolette solo se il parametro del metodo corrispondente è di tipo Expression. Virgolette significa che l'elemento viene racchiuso in un Quote nodo. Il nodo risultante è un oggetto UnaryExpression la cui Operand proprietà è l'elemento di arguments
.