Expression.Call Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vytvoří .MethodCallExpression
Přetížení
Call(MethodInfo, Expression, Expression, Expression, Expression, Expression) |
Vytvoří, MethodCallExpression který představuje volání statické metody, která přijímá pět argumentů. |
Call(Expression, MethodInfo, Expression, Expression, Expression) |
Vytvoří metodu MethodCallExpression , která představuje volání metody, která přijímá tři argumenty. |
Call(Type, String, Type[], Expression[]) |
Vytvoří MethodCallExpression metodu, která představuje volání |
Call(MethodInfo, Expression, Expression, Expression) |
Vytvoří, MethodCallExpression který představuje volání statické metody, která přijímá tři argumenty. |
Call(Expression, String, Type[], Expression[]) |
Vytvoří metodu MethodCallExpression , která představuje volání metody voláním příslušné metody továrny. |
Call(Expression, MethodInfo, Expression, Expression) |
Vytvoří, MethodCallExpression který představuje volání metody, která přijímá dva argumenty. |
Call(MethodInfo, Expression, Expression, Expression, Expression) |
Vytvoří MethodCallExpression , který představuje volání statické metody, která přijímá čtyři argumenty. |
Call(Expression, MethodInfo, Expression[]) |
Vytvoří metodu MethodCallExpression , která představuje volání metody, která přijímá argumenty. |
Call(Expression, MethodInfo, IEnumerable<Expression>) |
Vytvoří metodu MethodCallExpression , která představuje volání metody, která přijímá argumenty. |
Call(MethodInfo, Expression[]) |
Vytvoří metodu MethodCallExpression , která představuje volání |
Call(MethodInfo, Expression) |
Vytvoří MethodCallExpression , který představuje volání |
Call(MethodInfo, IEnumerable<Expression>) |
Vytvoří metodu MethodCallExpression , která představuje volání statické metody (Shared v jazyce Visual Basic). |
Call(Expression, MethodInfo) |
Vytvoří metodu MethodCallExpression , která představuje volání metody, která nepřijímá žádné argumenty. |
Call(MethodInfo, Expression, Expression) |
Vytvoří MethodCallExpression , který představuje volání statické metody, která přijímá dva argumenty. |
Call(MethodInfo, Expression, Expression, Expression, Expression, Expression)
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
Vytvoří, MethodCallExpression který představuje volání statické metody, která přijímá pět argumentů.
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1, System::Linq::Expressions::Expression ^ arg2, System::Linq::Expressions::Expression ^ arg3, System::Linq::Expressions::Expression ^ arg4);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2, System.Linq.Expressions.Expression arg3, System.Linq.Expressions.Expression arg4);
static member Call : System.Reflection.MethodInfo * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, arg0 As Expression, arg1 As Expression, arg2 As Expression, arg3 As Expression, arg4 As Expression) As MethodCallExpression
Parametry
- method
- MethodInfo
A MethodInfo , aby se vlastnost nastavil Method na hodnotu rovna.
- arg0
- Expression
Jedná se Expression o první argument.
- arg1
- Expression
Jedná se Expression o druhý argument.
- arg2
- Expression
Jedná se Expression o třetí argument.
- arg3
- Expression
Jedná se Expression o čtvrtý argument.
- arg4
- Expression
Jedná se Expression o pátý argument.
Návraty
Vlastnost MethodCallExpression a, která má NodeType vlastnost rovna Call a Object vlastnosti a Method nastavené na zadané hodnoty.
Výjimky
method
je null.
Platí pro
Call(Expression, MethodInfo, Expression, Expression, Expression)
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
Vytvoří metodu MethodCallExpression , která představuje volání metody, která přijímá tři argumenty.
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(System::Linq::Expressions::Expression ^ instance, System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1, System::Linq::Expressions::Expression ^ arg2);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression? instance, System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2);
static member Call : System.Linq.Expressions.Expression * System.Reflection.MethodInfo * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (instance As Expression, method As MethodInfo, arg0 As Expression, arg1 As Expression, arg2 As Expression) As MethodCallExpression
Parametry
- instance
- Expression
Určuje Expression instanci pro volání instance. (předejte hodnotu null pro statickou metodu (sdílenou v jazyce Visual Basic).
- method
- MethodInfo
Představuje MethodInfo cílovou metodu.
- arg0
- Expression
Jedná se Expression o první argument.
- arg1
- Expression
Jedná se Expression o druhý argument.
- arg2
- Expression
Jedná se Expression o třetí argument.
Návraty
Vlastnost MethodCallExpression a, která má NodeType vlastnost rovna Call a Object vlastnosti a Method nastavené na zadané hodnoty.
Platí pro
Call(Type, String, Type[], Expression[])
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
Vytvoří MethodCallExpression metodu, která představuje volání static
metody (Shared
v jazyce Visual Basic) voláním příslušné metody továrny.
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(Type ^ type, System::String ^ methodName, cli::array <Type ^> ^ typeArguments, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.MethodCallExpression Call (Type type, string methodName, Type[] typeArguments, params System.Linq.Expressions.Expression[] arguments);
public static System.Linq.Expressions.MethodCallExpression Call (Type type, string methodName, Type[]? typeArguments, params System.Linq.Expressions.Expression[]? arguments);
static member Call : Type * string * Type[] * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (type As Type, methodName As String, typeArguments As Type(), ParamArray arguments As Expression()) As MethodCallExpression
Parametry
- type
- Type
Typ, který obsahuje zadanou static
metodu (Shared
v jazyce Visual Basic).
- methodName
- String
Název metody
- typeArguments
- Type[]
Pole Type objektů, které určují parametry typu obecné metody. Tento argument by měl mít hodnotu null, pokud methodName určuje negenerovou metodu.
- arguments
- Expression[]
Pole Expression objektů, které představují argumenty metody.
Návraty
AMethodCallExpression, který má NodeType vlastnost rovna CallMethod , vlastnost nastavena MethodInfo na, která představuje zadanou static
(Shared
v jazyce Visual Basic) metody a Arguments vlastnost nastavenou na zadané argumenty.
Výjimky
type
nebo methodName
je null
.
Žádná metoda, jejíž název je methodName
, jejíž parametry typu se shodují typeArguments
a jejichž typy parametrů jsou arguments
nalezeny v type
nebo jejích základních typech.
-nebo-
Více než jedna metoda, jejíž název je methodName
, jehož parametry typu odpovídají typeArguments
a jejichž typy parametrů se shodují arguments
v type
nebo jejích základních typech.
Poznámky
Vlastnost Type výsledného MethodCallExpression je rovna návratovém typu metody označené hodnotou methodName
. Vlastnost Object je null
.
Platí pro
Call(MethodInfo, Expression, Expression, Expression)
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
Vytvoří, MethodCallExpression který představuje volání statické metody, která přijímá tři argumenty.
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1, System::Linq::Expressions::Expression ^ arg2);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2);
static member Call : System.Reflection.MethodInfo * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, arg0 As Expression, arg1 As Expression, arg2 As Expression) As MethodCallExpression
Parametry
- method
- MethodInfo
A MethodInfo , aby se vlastnost nastavil Method na hodnotu rovna.
- arg0
- Expression
Jedná se Expression o první argument.
- arg1
- Expression
Jedná se Expression o druhý argument.
- arg2
- Expression
Jedná se Expression o třetí argument.
Návraty
Vlastnost MethodCallExpression a, která má NodeType vlastnost rovna Call a Object vlastnosti a Method nastavené na zadané hodnoty.
Výjimky
method
je null.
Platí pro
Call(Expression, String, Type[], Expression[])
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
Vytvoří metodu MethodCallExpression , která představuje volání metody voláním příslušné metody továrny.
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(System::Linq::Expressions::Expression ^ instance, System::String ^ methodName, cli::array <Type ^> ^ typeArguments, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, string methodName, Type[] typeArguments, params System.Linq.Expressions.Expression[] arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, string methodName, Type[]? typeArguments, params System.Linq.Expressions.Expression[]? arguments);
static member Call : System.Linq.Expressions.Expression * string * Type[] * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (instance As Expression, methodName As String, typeArguments As Type(), ParamArray arguments As Expression()) As MethodCallExpression
Parametry
- instance
- Expression
Type Jehož Expression hodnota vlastnosti bude hledána pro konkrétní metodu.
- methodName
- String
Název metody
- typeArguments
- Type[]
Pole Type objektů, které určují parametry typu obecné metody. Tento argument by měl mít hodnotu null, pokud methodName určuje negenerovou metodu.
- arguments
- Expression[]
Pole Expression objektů, které představují argumenty metody.
Návraty
AMethodCallExpression, který má NodeType vlastnost rovna CallObject , vlastnost se rovná instance
, Method nastavena na MethodInfo hodnotu, která představuje zadanou metodu instance a Arguments nastavenou na zadané argumenty.
Výjimky
instance
nebo methodName
je null
.
Žádná metoda, jejíž název je methodName
, jejíž parametry typu se shodují typeArguments
a jejichž typy parametrů se shodují arguments
v instance
souboru . Typ nebo jeho základní typy.
-nebo-
Více než jedna metoda s názvem methodName
, jejíž parametry typu odpovídají typeArguments
a jejichž typy parametrů se shodují arguments
v instance
. Typ nebo jeho základní typy.
Poznámky
Vlastnost Type výsledného MethodCallExpression je rovna návratovém typu metody označené hodnotou methodName
.
Platí pro
Call(Expression, MethodInfo, Expression, Expression)
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
Vytvoří, MethodCallExpression který představuje volání metody, která přijímá dva argumenty.
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(System::Linq::Expressions::Expression ^ instance, System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression? instance, System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1);
static member Call : System.Linq.Expressions.Expression * System.Reflection.MethodInfo * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (instance As Expression, method As MethodInfo, arg0 As Expression, arg1 As Expression) As MethodCallExpression
Parametry
- instance
- Expression
Určuje Expression instanci pro volání instance. (předejte hodnotu null pro statickou metodu (sdílenou v jazyce Visual Basic).
- method
- MethodInfo
Představuje MethodInfo cílovou metodu.
- arg0
- Expression
Jedná se Expression o první argument.
- arg1
- Expression
Jedná se Expression o druhý argument.
Návraty
Vlastnost MethodCallExpression a, která má NodeType vlastnost rovna Call a Object vlastnosti a Method nastavené na zadané hodnoty.
Příklady
Následující příklad kódu ukazuje, jak vytvořit výraz, který volá metodu instance, která má dva argumenty.
// Add the following directive to your file:
// using System.Linq.Expressions;
public class SampleClass
{
public int AddIntegers(int arg1, int arg2)
{
return arg1 + arg2;
}
}
static public void TestCall()
{
// This expression represents a call to an instance method that has two arguments.
// The first argument is an expression that creates a new object of the specified type.
Expression callExpr = Expression.Call(
Expression.New(typeof(SampleClass)),
typeof(SampleClass).GetMethod("AddIntegers", new Type[] { typeof(int), typeof(int) }),
Expression.Constant(1),
Expression.Constant(2)
);
// Print out the expression.
Console.WriteLine(callExpr.ToString());
// The following statement first creates an expression tree,
// then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda<Func<int>>(callExpr).Compile()());
// This code example produces the following output:
//
// new SampleClass().AddIntegers(1, 2)
// 3
}
' Add the following directive to your file:
' Imports System.Linq.Expressions
Public Class SampleClass
Public Function AddIntegers(ByVal arg1 As Integer, ByVal arg2 As Integer) As Integer
Return (arg1 + arg2)
End Function
End Class
Public Shared Sub TestCall()
' This expression represents a call to an instance method that has two arguments.
' The first argument is an expression that creates a new object of the specified type.
Dim callExpr As Expression = Expression.Call(
Expression.[New](GetType(SampleClass)),
GetType(SampleClass).GetMethod("AddIntegers", New Type() {GetType(Integer), GetType(Integer)}),
Expression.Constant(1),
Expression.Constant(2)
)
' Print the expression.
Console.WriteLine(callExpr.ToString())
' The following statement first creates an expression tree,
' then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda(Of Func(Of Integer))(callExpr).Compile()())
End Sub
' This code example produces the following output:
'
' new SampleClass().AddIntegers(1, 2)
' 3
Platí pro
Call(MethodInfo, Expression, Expression, Expression, Expression)
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
Vytvoří MethodCallExpression , který představuje volání statické metody, která přijímá čtyři argumenty.
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1, System::Linq::Expressions::Expression ^ arg2, System::Linq::Expressions::Expression ^ arg3);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2, System.Linq.Expressions.Expression arg3);
static member Call : System.Reflection.MethodInfo * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, arg0 As Expression, arg1 As Expression, arg2 As Expression, arg3 As Expression) As MethodCallExpression
Parametry
- method
- MethodInfo
A MethodInfo , aby se vlastnost nastavil Method na hodnotu rovna.
- arg0
- Expression
Jedná se Expression o první argument.
- arg1
- Expression
Jedná se Expression o druhý argument.
- arg2
- Expression
Jedná se Expression o třetí argument.
- arg3
- Expression
Jedná se Expression o čtvrtý argument.
Návraty
Vlastnost MethodCallExpression a, která má NodeType vlastnost rovna Call a Object vlastnosti a Method nastavené na zadané hodnoty.
Výjimky
method
je null.
Platí pro
Call(Expression, MethodInfo, Expression[])
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
Vytvoří , MethodCallExpression který představuje volání metody, která přijímá argumenty.
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(System::Linq::Expressions::Expression ^ instance, System::Reflection::MethodInfo ^ method, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, System.Reflection.MethodInfo method, params System.Linq.Expressions.Expression[] arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression? instance, System.Reflection.MethodInfo method, params System.Linq.Expressions.Expression[]? arguments);
static member Call : System.Linq.Expressions.Expression * System.Reflection.MethodInfo * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (instance As Expression, method As MethodInfo, ParamArray arguments As Expression()) As MethodCallExpression
Parametry
- instance
- Expression
Určuje Expression instanci pro volání metody instance (předání null
pro metodu static
(Shared
v jazyce Visual Basic).
- method
- MethodInfo
A MethodInfo , aby se Method vlastnost nastavil na hodnotu .
- arguments
- Expression[]
Pole Expression objektů, které se mají použít k naplnění Arguments kolekce.
Návraty
Vlastnost , MethodCallExpression která má NodeType vlastnost , MethodCallObjecta Arguments nastavené na zadané hodnoty.
Výjimky
method
je null
.
-nebo-
instance
je null
a method
představuje metodu instance.
-nebo-
arguments
není null
a jeden nebo více jeho prvků je null
.
instance
. Typ není možné přiřadit deklarující typ metody reprezentované parametrem method
.
-nebo-
Počet prvků v arguments
nástroji se nerovná počtu parametrů pro metodu reprezentovanou parametrem method
.
-nebo-
Jeden nebo více prvků arguments
objektu není možné přiřadit k odpovídajícímu parametru pro metodu reprezentovanou parametrem method
.
Poznámky
Chcete-li reprezentovat static
volání metody (Shared
v jazyce Visual Basic), předejte null
parametr při instance
volání této metody nebo místo toho volejte Call .
Pokud method
představuje metodu Type instance, vlastnost instance
musí být přiřaditelná deklarujícímu typu metody reprezentované výrazem method
.
Pokud arguments
není null
, musí mít stejný počet prvků jako počet parametrů pro metodu reprezentovanou parametrem method
. Každý prvek v arguments
souboru nesmí být a musí být null
přiřaditelný k odpovídajícímu parametru , method
pravděpodobně po uvozování.
Poznámka
Element bude uvozován pouze v případě, že odpovídající parametr metody je typu Expression. Uvozování znamená, že element je zabalený Quote v uzlu. Výsledný uzel je, UnaryExpression jehož Operand vlastnost je elementem .arguments
Vlastnost Arguments výsledné MethodCallExpression hodnoty je prázdná, pokud arguments
je null
. V opačném případě obsahuje stejné prvky jako arguments
, z nichž některé mohou být citovány.
Vlastnost Type výsledného MethodCallExpression objektu se rovná návratovém typu metody reprezentované parametrem method
.
Platí pro
Call(Expression, MethodInfo, IEnumerable<Expression>)
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
Vytvoří , MethodCallExpression který představuje volání metody, která přijímá argumenty.
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(System::Linq::Expressions::Expression ^ instance, System::Reflection::MethodInfo ^ method, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, System.Reflection.MethodInfo method, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression? instance, System.Reflection.MethodInfo method, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression>? arguments);
static member Call : System.Linq.Expressions.Expression * System.Reflection.MethodInfo * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (instance As Expression, method As MethodInfo, arguments As IEnumerable(Of Expression)) As MethodCallExpression
Parametry
- instance
- Expression
K Expression nastavení Object vlastnosti na hodnotu (předání null
pro metodu static
(Shared
v jazyce Visual Basic).
- method
- MethodInfo
A MethodInfo , aby se Method vlastnost nastavil na hodnotu .
- arguments
- IEnumerable<Expression>
Obsahuje IEnumerable<T> objekty, které Expression se mají použít k naplnění Arguments kolekce.
Návraty
Vlastnost , MethodCallExpression která má NodeType vlastnost , MethodCallObjecta Arguments nastavené na zadané hodnoty.
Výjimky
instance
. Typ není možné přiřadit deklarující typ metody reprezentované parametrem method
.
-nebo-
Počet prvků v arguments
nástroji se nerovná počtu parametrů pro metodu reprezentovanou parametrem method
.
-nebo-
Jeden nebo více prvků arguments
objektu není možné přiřadit k odpovídajícímu parametru pro metodu reprezentovanou parametrem method
.
Poznámky
Chcete-li reprezentovat static
volání metody (Shared
v jazyce Visual Basic), předejte null
parametr při instance
volání této metody nebo místo toho volejte Call .
Pokud method
představuje metodu Type instance, vlastnost instance
musí být přiřaditelná deklarujícímu typu metody reprezentované výrazem method
.
Pokud arguments
není null
, musí mít stejný počet prvků jako počet parametrů pro metodu reprezentovanou parametrem method
. Každý prvek v arguments
souboru nesmí být a musí být null
přiřaditelný k odpovídajícímu parametru , method
pravděpodobně po uvozování.
Poznámka
Element bude uvozován pouze v případě, že odpovídající parametr metody je typu Expression. Uvozování znamená, že element je zabalený Quote v uzlu. Výsledný uzel je, UnaryExpression jehož Operand vlastnost je elementem .arguments
Vlastnost Arguments výsledné MethodCallExpression hodnoty je prázdná, pokud arguments
je null
. V opačném případě obsahuje stejné prvky jako arguments
, z nichž některé mohou být citovány.
Vlastnost Type výsledného MethodCallExpression objektu se rovná návratovém typu metody reprezentované parametrem method
.
Platí pro
Call(MethodInfo, Expression[])
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
Vytvoří , MethodCallExpression který představuje volání static
metody (Shared
v jazyce Visual Basic), která má argumenty.
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, params System.Linq.Expressions.Expression[] arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, params System.Linq.Expressions.Expression[]? arguments);
static member Call : System.Reflection.MethodInfo * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, ParamArray arguments As Expression()) As MethodCallExpression
Parametry
- method
- MethodInfo
A MethodInfo , který představuje static
(Shared
v jazyce Visual Basic) metoda pro nastavení Method vlastnosti rovna.
- arguments
- Expression[]
Pole Expression objektů, které se mají použít k naplnění Arguments kolekce.
Návraty
A MethodCallExpression , který má NodeType vlastnost rovnou Call a Method vlastnosti a Arguments nastavené na zadané hodnoty.
Výjimky
method
je null
.
Počet prvků v arguments
nástroji se nerovná počtu parametrů pro metodu reprezentovanou parametrem method
.
-nebo-
Jeden nebo více prvků arguments
objektu není možné přiřadit k odpovídajícímu parametru pro metodu reprezentovanou parametrem method
.
Poznámky
Pokud arguments
není null
, musí mít stejný počet prvků jako počet parametrů pro metodu reprezentovanou parametrem method
. Každý prvek v arguments
souboru nesmí být a musí být null
přiřaditelný k odpovídajícímu parametru , method
pravděpodobně po uvozování.
Poznámka
Element bude uvozován pouze v případě, že odpovídající parametr metody je typu Expression. Uvozování znamená, že element je zabalený Quote v uzlu. Výsledný uzel je, UnaryExpression jehož Operand vlastnost je elementem .arguments
Vlastnost Arguments výsledné MethodCallExpression hodnoty je prázdná, pokud arguments
je null
. V opačném případě obsahuje stejné prvky jako arguments
, z nichž některé mohou být citovány.
Vlastnost Type výsledného MethodCallExpression objektu se rovná návratovém typu metody reprezentované parametrem method
. Vlastnost Object je null
.
Platí pro
Call(MethodInfo, Expression)
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
Vytvoří , MethodCallExpression který představuje volání static
metody (Shared
v jazyce Visual Basic), která přebírá jeden argument.
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0);
static member Call : System.Reflection.MethodInfo * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, arg0 As Expression) As MethodCallExpression
Parametry
- method
- MethodInfo
A MethodInfo , aby se Method vlastnost nastavil na hodnotu .
- arg0
- Expression
Jedná se Expression o první argument.
Návraty
A MethodCallExpression , který má NodeType vlastnost rovnou Call a Object vlastnosti a Method nastavené na zadané hodnoty.
Výjimky
method
má hodnotu null.
Příklady
Následující příklad ukazuje, jak vytvořit výraz, který volá metodu static
(Shared
v jazyce Visual Basic), která přijímá jeden argument.
// Add the following directive to your file:
// using System.Linq.Expressions;
public class SampleClass
{
public static int Increment(int arg1)
{
return arg1 + 1;
}
}
static public void TestCall()
{
//This expression represents a call to an instance method with one argument.
Expression callExpr = Expression.Call(
typeof(SampleClass).GetMethod("Increment"),
Expression.Constant(2)
);
// Print out the expression.
Console.WriteLine(callExpr.ToString());
// The following statement first creates an expression tree,
// then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda<Func<int>>(callExpr).Compile()());
// This code example produces the following output:
//
// Increment(2)
// 3
}
' Add the following directive to your file:
' Imports System.Linq.Expressions
Public Class SampleClass
Shared Function Increment(ByVal arg1 As Integer) As Integer
Return arg1 + 1
End Function
End Class
Shared Sub TestCall()
'This expression represents a call to an instance method with one argument.
Dim callExpr As Expression = Expression.Call(
GetType(SampleClass).GetMethod("Increment"),
Expression.Constant(2))
' Print the expression.
Console.WriteLine(callExpr.ToString())
' The following statement first creates an expression tree,
' then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda(Of Func(Of Integer))(callExpr).Compile()())
End Sub
' This code example produces the following output:
'
' Increment(2)
' 3
Platí pro
Call(MethodInfo, IEnumerable<Expression>)
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
Vytvoří, MethodCallExpression který představuje volání statické metody (Shared v jazyce Visual Basic).
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression>? arguments);
static member Call : System.Reflection.MethodInfo * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, arguments As IEnumerable(Of Expression)) As MethodCallExpression
Parametry
- method
- MethodInfo
Objekt MethodInfo , který představuje cílovou metodu.
- arguments
- IEnumerable<Expression>
Kolekce, Expression která představuje argumenty volání.
Návraty
A MethodCallExpression , který má NodeType vlastnost rovnou Call a Object vlastnosti a Method nastavené na zadané hodnoty.
Platí pro
Call(Expression, MethodInfo)
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
Vytvoří metodu MethodCallExpression , která představuje volání metody, která nepřijímá žádné argumenty.
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(System::Linq::Expressions::Expression ^ instance, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression? instance, System.Reflection.MethodInfo method);
static member Call : System.Linq.Expressions.Expression * System.Reflection.MethodInfo -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (instance As Expression, method As MethodInfo) As MethodCallExpression
Parametry
- instance
- Expression
Určuje Expression instanci pro volání metody instance (předání null
pro metodu static
(Shared
v jazyce Visual Basic).
- method
- MethodInfo
A MethodInfo , aby se Method vlastnost nastavil na hodnotu .
Návraty
A MethodCallExpression , který má NodeType vlastnost rovnou Call a Object vlastnosti a Method nastavené na zadané hodnoty.
Výjimky
instance
. Typ není možné přiřadit deklarující typ metody reprezentované parametrem method
.
Příklady
Následující příklad kódu ukazuje, jak vytvořit výraz, který volá metodu bez argumentů.
// Add the following directive to your file:
// using System.Linq.Expressions;
// This expression represents a call to an instance method without arguments.
Expression callExpr = Expression.Call(
Expression.Constant("sample string"), typeof(String).GetMethod("ToUpper", new Type[] { }));
// Print out the expression.
Console.WriteLine(callExpr.ToString());
// The following statement first creates an expression tree,
// then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda<Func<String>>(callExpr).Compile()());
// This code example produces the following output:
//
// "sample string".ToUpper
// SAMPLE STRING
' Add the following directive to your file:
' Imports System.Linq.Expressions
' This expression represents a call to an instance method without arguments.
Dim callExpr As Expression = Expression.Call(
Expression.Constant("sample string"), GetType(String).GetMethod("ToUpper", New Type() {}))
' Print the expression.
Console.WriteLine(callExpr.ToString())
' The following statement first creates an expression tree,
' then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda(Of Func(Of String))(callExpr).Compile()())
' This code example produces the following output:
'
' "sample string".ToUpper
' SAMPLE STRING
Poznámky
Chcete-li reprezentovat static
volání metody (Shared
v jazyce Visual Basic), předejte null
parametr při instance
volání této metody.
Pokud method
představuje metodu Type instance, vlastnost instance
musí být přiřaditelná deklarujícímu typu metody reprezentované výrazem method
.
Vlastnost Arguments výsledné MethodCallExpression hodnoty je prázdná. Vlastnost Type se rovná návratovém typu metody reprezentované parametrem method
.
Platí pro
Call(MethodInfo, Expression, Expression)
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
- Zdroj:
- MethodCallExpression.cs
Vytvoří , MethodCallExpression který představuje volání statické metody, která přijímá dva argumenty.
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1);
static member Call : System.Reflection.MethodInfo * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, arg0 As Expression, arg1 As Expression) As MethodCallExpression
Parametry
- method
- MethodInfo
A MethodInfo , aby se Method vlastnost nastavil na hodnotu .
- arg0
- Expression
Jedná se Expression o první argument.
- arg1
- Expression
Hodnota Expression , která představuje druhý argument.
Návraty
A MethodCallExpression , který má NodeType vlastnost rovnou Call a Object vlastnosti a Method nastavené na zadané hodnoty.
Výjimky
method
má hodnotu null.