Sdílet prostřednictvím


Expression.Call Metoda

Definice

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í static metody (Shared v jazyce Visual Basic) voláním příslušné metody továrny.

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í static metody (Shared v jazyce Visual Basic), která obsahuje argumenty.

Call(MethodInfo, Expression)

Vytvoří MethodCallExpression , který představuje volání static metody (Shared v jazyce Visual Basic), která přijímá jeden argument.

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 (Sharedv 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í typeArgumentsa 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í typeArgumentsa 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í typeArgumentsa jejichž typy parametrů se shodují arguments v instancesouboru . Typ nebo jeho základní typy.

-nebo-

Více než jedna metoda s názvem methodName, jejíž parametry typu odpovídají typeArgumentsa 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 , methodpravdě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

method je null.

-nebo-

instance je null a method představuje metodu instance.

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 , methodpravdě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 , methodpravdě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

method je null.

-nebo-

instance je null a method představuje metodu instance.

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.

Platí pro