Sdílet prostřednictvím


Expression.Call Metoda

Definice

Přetížení

Name Description
Call(MethodInfo, Expression, Expression, Expression, Expression, Expression)

MethodCallExpression Vytvoří volání statické metody, která přebírá pět argumentů.

Call(Expression, MethodInfo, Expression, Expression, Expression)

Vytvoří MethodCallExpression volání metody, která přebírá tři argumenty.

Call(Type, String, Type[], Expression[])

Vytvoří MethodCallExpression , 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 volání statické metody, která přebírá tři argumenty.

Call(Expression, String, Type[], Expression[])

MethodCallExpression Vytvoří, která představuje volání metody voláním příslušné metody továrny.

Call(Expression, MethodInfo, Expression, Expression)

Vytvoří MethodCallExpression volání metody, která přebírá dva argumenty.

Call(MethodInfo, Expression, Expression, Expression, Expression)

MethodCallExpression Vytvoří volání statické metody, která přebírá čtyři argumenty.

Call(Expression, MethodInfo, Expression[])

MethodCallExpression Vytvoří volání metody, která přebírá argumenty.

Call(Expression, MethodInfo, IEnumerable<Expression>)

MethodCallExpression Vytvoří volání metody, která přebírá argumenty.

Call(MethodInfo, Expression[])

Vytvoří MethodCallExpression volání static metody (Shared v jazyce Visual Basic), která obsahuje argumenty.

Call(MethodInfo, Expression)

MethodCallExpression Vytvoří, který představuje volání static metody (Sharedv jazyce Visual Basic), která přebírá jeden argument.

Call(MethodInfo, IEnumerable<Expression>)

Vytvoří MethodCallExpression volání statické metody (Shared v jazyce Visual Basic).

Call(Expression, MethodInfo)

Vytvoří MethodCallExpression volání metody, která nepřijímá žádné argumenty.

Call(MethodInfo, Expression, Expression)

MethodCallExpression Vytvoří volání statické metody, která přebírá dva argumenty.

Call(MethodInfo, Expression, Expression, Expression, Expression, Expression)

Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs

MethodCallExpression Vytvoří volání statické metody, která přebírá 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 nastavit Method vlastnost rovná se.

arg0
Expression

Představuje Expression první argument.

arg1
Expression

Představuje Expression druhý argument.

arg2
Expression

Jedná se Expression o třetí argument.

arg3
Expression

Představuje Expression čtvrtý argument.

arg4
Expression

Jedná se Expression o pátý argument.

Návraty

AMethodCallExpression, který má vlastnost rovna CallNodeType a Object a Method vlastnosti nastaveny 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
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs

Vytvoří MethodCallExpression volání metody, která přebírá 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 volání instance. (předejte hodnotu null pro statickou metodu (Shared in Visual Basic).

method
MethodInfo

Představuje MethodInfo cílovou metodu.

arg0
Expression

Představuje Expression první argument.

arg1
Expression

Představuje Expression druhý argument.

arg2
Expression

Jedná se Expression o třetí argument.

Návraty

AMethodCallExpression, který má vlastnost rovna CallNodeType a Object a Method vlastnosti nastaveny na zadané hodnoty.

Platí pro

Call(Type, String, Type[], Expression[])

Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs

Vytvoří MethodCallExpression , 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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Calling a generic method cannot be statically analyzed. It's not possible to guarantee the availability of requirements of the generic method. This can be suppressed if the method is not generic.")]
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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Calling a generic method cannot be statically analyzed. It's not possible to guarantee the availability of requirements of the generic method. This can be suppressed if the method is not generic.")]
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
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")>]
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Calling a generic method cannot be statically analyzed. It's not possible to guarantee the availability of requirements of the generic method. This can be suppressed if the method is not generic.")>]
static member Call : Type * string * Type[] * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Calling a generic method cannot be statically analyzed. It's not possible to guarantee the availability of requirements of the generic method. This can be suppressed if the method is not generic.")>]
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 (Shared v jazyce Visual Basic) metoda.

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 ne generickou metodu.

arguments
Expression[]

Pole Expression objektů, které představují argumenty metody.

Návraty

AMethodCallExpression, který má vlastnost rovna CallNodeType , Method vlastnost nastavena naMethodInfo, která představuje zadaný static (Shared v jazyce Visual Basic) metoda a Arguments vlastnost nastavena na zadané argumenty.

Atributy

Výjimky

type nebo methodName je null.

Žádná metoda, jejíž název je methodName, jehož parametry typu odpovídají typeArgumentsa jejichž typy parametrů arguments se shodují, se nacházejí v type základních typech.

nebo

Více než jedna metoda, jejíž název je methodName, jehož typ parametry odpovídá typeArguments, a jejichž typy parametrů arguments jsou nalezeny v type nebo jeho základních typech.

Poznámky

Vlastnost Type výsledného MethodCallExpression je rovna návratového typu metody, která je označena methodName. Vlastnost Object je null.

Platí pro

Call(MethodInfo, Expression, Expression, Expression)

Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs

Vytvoří MethodCallExpression volání statické metody, která přebírá 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 nastavit Method vlastnost rovná se.

arg0
Expression

Představuje Expression první argument.

arg1
Expression

Představuje Expression druhý argument.

arg2
Expression

Jedná se Expression o třetí argument.

Návraty

AMethodCallExpression, který má vlastnost rovna CallNodeType a Object a Method vlastnosti nastaveny na zadané hodnoty.

Výjimky

method je null.

Platí pro

Call(Expression, String, Type[], Expression[])

Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs

MethodCallExpression Vytvoří, 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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")]
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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")]
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
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")>]
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")>]
static member Call : System.Linq.Expressions.Expression * string * Type[] * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")>]
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

Jejíž ExpressionType hodnota vlastnosti bude prohledána 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 ne generickou metodu.

arguments
Expression[]

Pole Expression objektů, které představují argumenty metody.

Návraty

AMethodCallExpression, který má vlastnost rovna CallNodeType , Object vlastnost rovna instance, Method nastavena naMethodInfo, který představuje zadanou instanci metoda a Arguments nastavena na zadané argumenty.

Atributy

Výjimky

instance nebo methodName je null.

Žádná metoda, jejíž název je methodName, jehož parametry typu odpovídají typeArguments, a jejichž typy parametrů jsou arguments nalezeny v instance. Typ nebo jeho základní typy.

nebo

Více než jedna metoda, jejíž název je methodName, jehož typ parametry odpovídá typeArguments, a jejichž typy parametrů arguments jsou nalezeny v instance. Typ nebo jeho základní typy.

Poznámky

Vlastnost Type výsledného MethodCallExpression je rovna návratového typu metody, která je označena methodName.

Platí pro

Call(Expression, MethodInfo, Expression, Expression)

Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs

Vytvoří MethodCallExpression volání metody, která přebírá 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 volání instance. (předejte hodnotu null pro statickou metodu (Shared in Visual Basic).

method
MethodInfo

Představuje MethodInfo cílovou metodu.

arg0
Expression

Představuje Expression první argument.

arg1
Expression

Představuje Expression druhý argument.

Návraty

AMethodCallExpression, který má vlastnost rovna CallNodeType a Object a Method vlastnosti nastaveny 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
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs

MethodCallExpression Vytvoří volání statické metody, která přebírá č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 nastavit Method vlastnost rovná se.

arg0
Expression

Představuje Expression první argument.

arg1
Expression

Představuje Expression druhý argument.

arg2
Expression

Jedná se Expression o třetí argument.

arg3
Expression

Představuje Expression čtvrtý argument.

Návraty

AMethodCallExpression, který má vlastnost rovna CallNodeType a Object a Method vlastnosti nastaveny na zadané hodnoty.

Výjimky

method je null.

Platí pro

Call(Expression, MethodInfo, Expression[])

Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs

MethodCallExpression Vytvoří volání metody, která přebírá 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 volání metody instance (předat null pro metodu static (Shared v jazyce Visual Basic).

method
MethodInfo

A MethodInfo nastavit Method vlastnost rovná se.

arguments
Expression[]

Pole Expression objektů, které se mají použít k naplnění Arguments kolekce.

Návraty

AMethodCallExpression, který má vlastnost rovna CallNodeTypeObjecta , Methoda Arguments vlastnosti nastaveny na zadané hodnoty.

Výjimky

method je null.

nebo

instance method představuje null metodu instance.

nebo

arguments není null a jeden nebo více jeho prvků je null.

instance. Typ nelze přiřadit deklarující typ metody reprezentované method.

nebo

Počet prvků v arguments se nerovná počtu parametrů pro metodu reprezentovanou metodou method.

nebo

Jeden nebo více prvků arguments není možné přiřadit k odpovídajícímu parametru pro metodu reprezentovanou method.

Poznámky

Chcete-li vyjádřit volání metody (Sharedv jazyce Visual Basic), předejte nullinstance parametr při volání této metody nebo místo toho voláníCall.static

Pokud method představuje metodu instance, Type vlastnost instance musí být přiřadit k deklarování typu metody reprezentované method.

Pokud arguments není null, musí mít stejný počet prvků jako počet parametrů pro metodu reprezentovanou method. Každý prvek arguments nesmí být null a musí být přiřazen k odpovídajícímu parametru method, případně po uvozování.

Poznámka:

Prvek bude citován pouze v případě, že odpovídající parametr metody je typu Expression. Uvozování znamená, že prvek je zabalený do Quote uzlu. Výsledný uzel je jehož UnaryExpressionOperand vlastnost je prvek arguments.

Vlastnost Arguments výsledné MethodCallExpression hodnoty je prázdná, pokud arguments je null. V opačném případě obsahuje stejné prvky jako argumentsněkteré z nich mohou být citovány.

Vlastnost Type výsledné MethodCallExpression je rovna návratového typu metody reprezentované method.

Platí pro

Call(Expression, MethodInfo, IEnumerable<Expression>)

Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs

MethodCallExpression Vytvoří volání metody, která přebírá 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

Object Nastavení Expression vlastnosti rovno (předání null pro metodu static (Sharedv jazyce Visual Basic)

method
MethodInfo

A MethodInfo nastavit Method vlastnost rovná se.

arguments
IEnumerable<Expression>

Objekt IEnumerable<T> obsahující Expression objekty, které se mají použít k naplnění Arguments kolekce.

Návraty

AMethodCallExpression, který má vlastnost rovna CallNodeTypeObjecta , Methoda Arguments vlastnosti nastaveny na zadané hodnoty.

Výjimky

method je null.

nebo

instance method představuje null metodu instance.

instance. Typ nelze přiřadit deklarující typ metody reprezentované method.

nebo

Počet prvků v arguments se nerovná počtu parametrů pro metodu reprezentovanou metodou method.

nebo

Jeden nebo více prvků arguments není možné přiřadit k odpovídajícímu parametru pro metodu reprezentovanou method.

Poznámky

Chcete-li vyjádřit volání metody (Sharedv jazyce Visual Basic), předejte nullinstance parametr při volání této metody nebo místo toho voláníCall.static

Pokud method představuje metodu instance, Type vlastnost instance musí být přiřadit k deklarování typu metody reprezentované method.

Pokud arguments není null, musí mít stejný počet prvků jako počet parametrů pro metodu reprezentovanou method. Každý prvek arguments nesmí být null a musí být přiřazen k odpovídajícímu parametru method, případně po uvozování.

Poznámka:

Prvek bude citován pouze v případě, že odpovídající parametr metody je typu Expression. Uvozování znamená, že prvek je zabalený do Quote uzlu. Výsledný uzel je jehož UnaryExpressionOperand vlastnost je prvek arguments.

Vlastnost Arguments výsledné MethodCallExpression hodnoty je prázdná, pokud arguments je null. V opačném případě obsahuje stejné prvky jako argumentsněkteré z nich mohou být citovány.

Vlastnost Type výsledné MethodCallExpression je rovna návratového typu metody reprezentované method.

Platí pro

Call(MethodInfo, Expression[])

Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs

Vytvoří MethodCallExpression volání static metody (Shared v jazyce Visual Basic), která obsahuje 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 nastavit Method vlastnost rovna.

arguments
Expression[]

Pole Expression objektů, které se mají použít k naplnění Arguments kolekce.

Návraty

AMethodCallExpression, který má vlastnost rovna CallNodeType a Method a Arguments vlastnosti nastaveny na zadané hodnoty.

Výjimky

method je null.

Počet prvků v arguments se nerovná počtu parametrů pro metodu reprezentovanou metodou method.

nebo

Jeden nebo více prvků arguments není možné přiřadit k odpovídajícímu parametru pro metodu reprezentovanou method.

Poznámky

Pokud arguments není null, musí mít stejný počet prvků jako počet parametrů pro metodu reprezentovanou method. Každý prvek arguments nesmí být null a musí být přiřazen k odpovídajícímu parametru method, případně po uvozování.

Poznámka:

Prvek bude citován pouze v případě, že odpovídající parametr metody je typu Expression. Uvozování znamená, že prvek je zabalený do Quote uzlu. Výsledný uzel je jehož UnaryExpressionOperand vlastnost je prvek arguments.

Vlastnost Arguments výsledné MethodCallExpression hodnoty je prázdná, pokud arguments je null. V opačném případě obsahuje stejné prvky jako argumentsněkteré z nich mohou být citovány.

Vlastnost Type výsledné MethodCallExpression je rovna návratového typu metody reprezentované method. Vlastnost Object je null.

Platí pro

Call(MethodInfo, Expression)

Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs

MethodCallExpression Vytvoří, který představuje volání static metody (Sharedv 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 nastavit Method vlastnost rovná se.

arg0
Expression

Představuje Expression první argument.

Návraty

AMethodCallExpression, který má vlastnost rovna CallNodeType a Object a Method vlastnosti nastaveny na zadané hodnoty.

Výjimky

method je 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řebírá 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
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs

Vytvoří MethodCallExpression 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

Představuje MethodInfo cílovou metodu.

arguments
IEnumerable<Expression>

Kolekce Expression , která představuje argumenty volání.

Návraty

AMethodCallExpression, který má vlastnost rovna CallNodeType a Object a Method vlastnosti nastaveny na zadané hodnoty.

Platí pro

Call(Expression, MethodInfo)

Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs

Vytvoří MethodCallExpression 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 volání metody instance (předat null pro metodu static (Shared v jazyce Visual Basic).

method
MethodInfo

A MethodInfo nastavit Method vlastnost rovná se.

Návraty

AMethodCallExpression, který má vlastnost rovna CallNodeType a Object a Method vlastnosti nastaveny na zadané hodnoty.

Výjimky

method je null.

nebo

instance method představuje null metodu instance.

instance. Typ nelze přiřadit deklarující typ metody reprezentované 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 (Sharedv jazyce Visual Basic), předejte instancenull parametr při volání této metody.

Pokud method představuje metodu instance, Type vlastnost instance musí být přiřadit k deklarování typu metody reprezentované method.

Vlastnost Arguments výsledné MethodCallExpression hodnoty je prázdná. Vlastnost Type je rovna návratového typu metody reprezentované method.

Platí pro

Call(MethodInfo, Expression, Expression)

Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs

MethodCallExpression Vytvoří volání statické metody, která přebírá 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 nastavit Method vlastnost rovná se.

arg0
Expression

Představuje Expression první argument.

arg1
Expression

Představuje Expression druhý argument.

Návraty

AMethodCallExpression, který má vlastnost rovna CallNodeType a Object a Method vlastnosti nastaveny na zadané hodnoty.

Výjimky

method je null.

Platí pro