Expression.ElementInit Metoda

Definicja

Tworzy element ElementInit.

Przeciążenia

ElementInit(MethodInfo, IEnumerable<Expression>)

Tworzy element ElementInit, podany IEnumerable<T> jako drugi argument.

ElementInit(MethodInfo, Expression[])

Tworzy tablicę ElementInitwartości jako drugi argument.

ElementInit(MethodInfo, IEnumerable<Expression>)

Źródło:
ElementInit.cs
Źródło:
ElementInit.cs
Źródło:
ElementInit.cs

Tworzy element ElementInit, podany IEnumerable<T> jako drugi argument.

public static System.Linq.Expressions.ElementInit ElementInit (System.Reflection.MethodInfo addMethod, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> arguments);

Parametry

addMethod
MethodInfo

A MethodInfo , aby ustawić właściwość równą AddMethod .

arguments
IEnumerable<Expression>

Obiekt IEnumerable<T> zawierający Expression obiekty ustawiające właściwość równą Arguments .

Zwraca

Obiekt ElementInit z właściwościami AddMethod i Arguments ustawionymi na określone wartości.

Wyjątki

addMethod lub arguments ma wartość null.

Metoda, która reprezentuje, addMethod nie nosi nazwy "Add" (bez uwzględniania wielkości liter).

-lub-

Metoda, która reprezentuje, addMethod nie jest metodą wystąpienia.

-lub-

arguments nie zawiera tej samej liczby elementów, co liczba parametrów dla metody, która addMethod reprezentuje.

-lub-

Właściwość Type jednego lub większej liczby elementów arguments nie jest przypisywana do typu odpowiadającego mu parametru metody, która addMethod reprezentuje.

Przykłady

W poniższym przykładzie pokazano, jak użyć ElementInit(MethodInfo, Expression[]) metody do utworzenia obiektu ElementInit reprezentującego wywołanie Add metody w celu zainicjowania elementu kolekcji słowników.

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

Uwagi

Parametr addMethod musi reprezentować metodę wystąpienia o nazwie "Add" (bez uwzględniania wielkości liter). Metoda add musi mieć taką samą liczbę parametrów jak liczba elementów w elemecie arguments. Właściwość Type każdego elementu w arguments pliku musi być przypisywana do typu odpowiedniego parametru metody add, prawdopodobnie po cudzysłów.

Uwaga

Element będzie cytowany tylko wtedy, gdy odpowiedni parametr metody jest typu Expression. Cudzysłów oznacza, że element jest owinięty w węźle Quote . Wynikowy UnaryExpression węzeł jest, którego Operand właściwość jest elementem arguments.

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

ElementInit(MethodInfo, Expression[])

Źródło:
ElementInit.cs
Źródło:
ElementInit.cs
Źródło:
ElementInit.cs

Tworzy tablicę ElementInitwartości jako drugi argument.

public static System.Linq.Expressions.ElementInit ElementInit (System.Reflection.MethodInfo addMethod, params System.Linq.Expressions.Expression[] arguments);

Parametry

addMethod
MethodInfo

A MethodInfo , aby ustawić właściwość równą AddMethod .

arguments
Expression[]

Tablica Expression obiektów do ustawienia właściwości równej Arguments .

Zwraca

Obiekt ElementInit z właściwościami AddMethod i Arguments ustawionymi na określone wartości.

Wyjątki

addMethod lub arguments ma wartość null.

Metoda, która reprezentuje addMethod, nie nosi nazwy "Add" (bez uwzględniania wielkości liter).

-lub-

Metoda, która addMethod reprezentuje, nie jest metodą wystąpienia.

-lub-

argumenty nie zawierają tej samej liczby elementów, co liczba parametrów dla metody, która reprezentuje addMethod.

-lub-

Właściwość Type jednego lub większej liczby elementów arguments nie jest przypisywana do typu odpowiadającego mu parametru metody, która addMethod reprezentuje.

Przykłady

W poniższym przykładzie pokazano, jak użyć ElementInit(MethodInfo, Expression[]) metody do utworzenia obiektu ElementInit reprezentującego wywołanie Add metody w celu zainicjowania elementu kolekcji słowników.

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

Uwagi

Parametr addMethod musi reprezentować metodę wystąpienia o nazwie "Add" (bez uwzględniania wielkości liter). Metoda add musi mieć taką samą liczbę parametrów jak liczba elementów w elemecie arguments. Właściwość Type każdego elementu w arguments pliku musi być przypisywana do typu odpowiedniego parametru metody add, prawdopodobnie po cudzysłów.

Uwaga

Element będzie cytowany tylko wtedy, gdy odpowiedni parametr metody jest typu Expression. Cudzysłów oznacza, że element jest owinięty w węźle Quote . Wynikowy UnaryExpression węzeł jest, którego Operand właściwość jest elementem arguments.

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0