Expression.Call Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Skapar en MethodCallExpression.
Överlagringar
| Name | Description |
|---|---|
| Call(MethodInfo, Expression, Expression, Expression, Expression, Expression) |
Skapar ett MethodCallExpression som representerar ett anrop till en statisk metod som tar fem argument. |
| Call(Expression, MethodInfo, Expression, Expression, Expression) |
Skapar ett MethodCallExpression som representerar ett anrop till en metod som tar tre argument. |
| Call(Type, String, Type[], Expression[]) |
Skapar en MethodCallExpression som representerar ett anrop till metoden |
| Call(MethodInfo, Expression, Expression, Expression) |
Skapar ett MethodCallExpression som representerar ett anrop till en statisk metod som tar tre argument. |
| Call(Expression, String, Type[], Expression[]) |
Skapar en MethodCallExpression som representerar ett anrop till en metod genom att anropa lämplig fabriksmetod. |
| Call(Expression, MethodInfo, Expression, Expression) |
Skapar en MethodCallExpression som representerar ett anrop till en metod som tar två argument. |
| Call(MethodInfo, Expression, Expression, Expression, Expression) |
Skapar en MethodCallExpression som representerar ett anrop till en statisk metod som tar fyra argument. |
| Call(Expression, MethodInfo, Expression[]) |
Skapar ett MethodCallExpression som representerar ett anrop till en metod som tar argument. |
| Call(Expression, MethodInfo, IEnumerable<Expression>) |
Skapar ett MethodCallExpression som representerar ett anrop till en metod som tar argument. |
| Call(MethodInfo, Expression[]) |
Skapar en MethodCallExpression som representerar ett anrop till en metod |
| Call(MethodInfo, Expression) |
Skapar en MethodCallExpression som representerar ett anrop till en metod |
| Call(MethodInfo, IEnumerable<Expression>) |
Skapar en MethodCallExpression som representerar ett anrop till en statisk metod (delad i Visual Basic). |
| Call(Expression, MethodInfo) |
Skapar ett MethodCallExpression som representerar ett anrop till en metod som inte tar några argument. |
| Call(MethodInfo, Expression, Expression) |
Skapar en MethodCallExpression som representerar ett anrop till en statisk metod som tar två argument. |
Call(MethodInfo, Expression, Expression, Expression, Expression, Expression)
Skapar ett MethodCallExpression som representerar ett anrop till en statisk metod som tar fem 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
Parametrar
- method
- MethodInfo
A MethodInfo för att ange egenskapen Method lika med.
- arg0
- Expression
Det Expression som representerar det första argumentet.
- arg1
- Expression
Det Expression som representerar det andra argumentet.
- arg2
- Expression
Det Expression som representerar det tredje argumentet.
- arg3
- Expression
Det Expression som representerar det fjärde argumentet.
- arg4
- Expression
Det Expression som representerar det femte argumentet.
Returer
En MethodCallExpression som har egenskapen NodeType lika med Call och Object egenskaperna och Method inställda på de angivna värdena.
Undantag
method är null.
Gäller för
Call(Expression, MethodInfo, Expression, Expression, Expression)
Skapar ett MethodCallExpression som representerar ett anrop till en metod som tar tre argument.
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
Parametrar
- instance
- Expression
En Expression som anger instansen för ett instansanrop. (skicka null för en statisk metod (delad i Visual Basic).
- method
- MethodInfo
Det MethodInfo som representerar målmetoden.
- arg0
- Expression
Det Expression som representerar det första argumentet.
- arg1
- Expression
Det Expression som representerar det andra argumentet.
- arg2
- Expression
Det Expression som representerar det tredje argumentet.
Returer
En MethodCallExpression som har egenskapen NodeType lika med Call och Object egenskaperna och Method inställda på de angivna värdena.
Gäller för
Call(Type, String, Type[], Expression[])
Skapar en MethodCallExpression som representerar ett anrop till metoden static (Shared i Visual Basic) genom att anropa lämplig fabriksmetod.
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);
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
Parametrar
- type
- Type
Den typ som innehåller den angivna metoden static (Shared i Visual Basic).
- methodName
- String
Namnet på metoden.
- typeArguments
- Type[]
En matris med Type objekt som anger typparametrarna för den generiska metoden. Det här argumentet ska vara null när methodName anger en icke-generisk metod.
- arguments
- Expression[]
En matris med Expression objekt som representerar argumenten för metoden.
Returer
En MethodCallExpression som har egenskapen NodeType lika med Call, egenskapen Method inställd på metoden MethodInfo som representerar den angivna metoden static (Shared i Visual Basic) och egenskapen Arguments inställd på de angivna argumenten.
Undantag
type eller methodName är null.
Ingen metod vars namn är methodName, vars typparametrar matchar typeArgumentsoch vars parametertyper matchar arguments finns i type eller dess bastyper.
-eller-
Mer än en metod vars namn är methodName, vars typparametrar matchar typeArgumentsoch vars parametertyper matchar arguments finns i type eller dess bastyper.
Kommentarer
Egenskapen Type för resultatet MethodCallExpression är lika med returtypen för metoden som anges av methodName. Egenskapen Object är null.
Gäller för
Call(MethodInfo, Expression, Expression, Expression)
Skapar ett MethodCallExpression som representerar ett anrop till en statisk metod som tar tre 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);
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
Parametrar
- method
- MethodInfo
A MethodInfo för att ange egenskapen Method lika med.
- arg0
- Expression
Det Expression som representerar det första argumentet.
- arg1
- Expression
Det Expression som representerar det andra argumentet.
- arg2
- Expression
Det Expression som representerar det tredje argumentet.
Returer
En MethodCallExpression som har egenskapen NodeType lika med Call och Object egenskaperna och Method inställda på de angivna värdena.
Undantag
method är null.
Gäller för
Call(Expression, String, Type[], Expression[])
Skapar en MethodCallExpression som representerar ett anrop till en metod genom att anropa lämplig fabriksmetod.
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);
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
Parametrar
- instance
- Expression
En Expression vars egenskapsvärde Type kommer att sökas efter en specifik metod.
- methodName
- String
Namnet på metoden.
- typeArguments
- Type[]
En matris med Type objekt som anger typparametrarna för den generiska metoden. Det här argumentet ska vara null när methodName anger en icke-generisk metod.
- arguments
- Expression[]
En matris med Expression objekt som representerar argumenten till metoden.
Returer
En MethodCallExpression som har NodeType egenskapen lika med Call, Object egenskapen lika med instance, Method inställd på som MethodInfo representerar den angivna instansmetoden och Arguments inställd på de angivna argumenten.
Undantag
instance eller methodName är null.
Ingen metod vars namn är methodName, vars typparametrar matchar typeArgumentsoch vars parametertyper matchar arguments finns i instance. Typ eller dess bastyper.
-eller-
Mer än en metod vars namn är methodName, vars typparametrar matchar typeArgumentsoch vars parametertyper matchar arguments finns i instance. Typ eller dess bastyper.
Kommentarer
Egenskapen Type för resultatet MethodCallExpression är lika med returtypen för metoden som anges av methodName.
Gäller för
Call(Expression, MethodInfo, Expression, Expression)
Skapar en MethodCallExpression som representerar ett anrop till en metod som tar två argument.
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
Parametrar
- instance
- Expression
En Expression som anger instansen för ett instansanrop. (skicka null för en statisk metod (delad i Visual Basic).
- method
- MethodInfo
Det MethodInfo som representerar målmetoden.
- arg0
- Expression
Det Expression som representerar det första argumentet.
- arg1
- Expression
Det Expression som representerar det andra argumentet.
Returer
En MethodCallExpression som har egenskapen NodeType lika med Call och Object egenskaperna och Method inställda på de angivna värdena.
Exempel
I följande kodexempel visas hur du skapar ett uttryck som anropar en instansmetod som har två argument.
// 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
Gäller för
Call(MethodInfo, Expression, Expression, Expression, Expression)
Skapar en MethodCallExpression som representerar ett anrop till en statisk metod som tar fyra 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);
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
Parametrar
- method
- MethodInfo
A MethodInfo för att ange egenskapen Method lika med.
- arg0
- Expression
Det Expression som representerar det första argumentet.
- arg1
- Expression
Det Expression som representerar det andra argumentet.
- arg2
- Expression
Det Expression som representerar det tredje argumentet.
- arg3
- Expression
Det Expression som representerar det fjärde argumentet.
Returer
En MethodCallExpression som har egenskapen NodeType lika med Call och Object egenskaperna och Method inställda på de angivna värdena.
Undantag
method är null.
Gäller för
Call(Expression, MethodInfo, Expression[])
Skapar ett MethodCallExpression som representerar ett anrop till en metod som tar argument.
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);
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
Parametrar
- instance
- Expression
En Expression som anger instansen för ett instansmetodanrop (skicka null för en static -metod (Shared i Visual Basic).
- method
- MethodInfo
A MethodInfo för att ange egenskapen Method lika med.
- arguments
- Expression[]
En matris med Expression objekt som ska användas för att fylla samlingen Arguments .
Returer
En MethodCallExpression som har NodeType egenskapen lika med Call och Objectegenskaperna , Methodoch Arguments som är inställda på de angivna värdena.
Undantag
method är null.
-eller-
instance är null och method representerar en instansmetod.
-eller-
arguments är inte null och ett eller flera av dess element är null.
instance. Typen kan inte tilldelas till deklareringstypen för metoden som representeras av method.
-eller-
Antalet element i arguments är inte lika med antalet parametrar för metoden som representeras av method.
-eller-
Ett eller flera av elementen arguments i kan inte tilldelas motsvarande parameter för metoden som representeras av method.
Kommentarer
Om du vill representera ett anrop till metoden static (Shared i Visual Basic) skickar du null för parametern instance när du anropar den här metoden eller anropar Call i stället.
Om method representerar en instansmetod Type måste egenskapen instance för vara tilldelad till deklareringstypen för metoden som representeras av method.
Om arguments inte nullmåste det ha samma antal element som antalet parametrar för metoden som representeras av method. Varje element i arguments får inte vara null och måste kunna tilldelas motsvarande parameter methodför , eventuellt efter citat.
Note
Ett element anges endast om motsvarande metodparameter är av typen Expression. Citat innebär att elementet omsluts i en Quote nod. Den resulterande noden är en UnaryExpression vars Operand egenskap är elementet argumentsi .
Egenskapen Arguments för resultatet MethodCallExpression är tom om arguments är null. Annars innehåller den samma element som arguments, av vilka vissa kan citeras.
Egenskapen Type för resultatet MethodCallExpression är lika med returtypen för metoden som representeras av method.
Gäller för
Call(Expression, MethodInfo, IEnumerable<Expression>)
Skapar ett MethodCallExpression som representerar ett anrop till en metod som tar argument.
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
Parametrar
- instance
- Expression
En Expression för att ange egenskapen Object lika med (skicka null för en static -metod (Shared i Visual Basic).
- method
- MethodInfo
A MethodInfo för att ange egenskapen Method lika med.
- arguments
- IEnumerable<Expression>
En IEnumerable<T> som innehåller Expression objekt som ska användas för att fylla samlingen Arguments .
Returer
En MethodCallExpression som har NodeType egenskapen lika med Call och Objectegenskaperna , Methodoch Arguments som är inställda på de angivna värdena.
Undantag
method är null.
-eller-
instance är null och method representerar en instansmetod.
instance. Typen kan inte tilldelas till deklareringstypen för metoden som representeras av method.
-eller-
Antalet element i arguments är inte lika med antalet parametrar för metoden som representeras av method.
-eller-
Ett eller flera av elementen arguments i kan inte tilldelas motsvarande parameter för metoden som representeras av method.
Kommentarer
Om du vill representera ett anrop till metoden static (Shared i Visual Basic) skickar du null för parametern instance när du anropar den här metoden eller anropar Call i stället.
Om method representerar en instansmetod Type måste egenskapen instance för vara tilldelad till deklareringstypen för metoden som representeras av method.
Om arguments inte nullmåste det ha samma antal element som antalet parametrar för metoden som representeras av method. Varje element i arguments får inte vara null och måste kunna tilldelas motsvarande parameter methodför , eventuellt efter citat.
Note
Ett element anges endast om motsvarande metodparameter är av typen Expression. Citat innebär att elementet omsluts i en Quote nod. Den resulterande noden är en UnaryExpression vars Operand egenskap är elementet argumentsi .
Egenskapen Arguments för resultatet MethodCallExpression är tom om arguments är null. Annars innehåller den samma element som arguments, av vilka vissa kan citeras.
Egenskapen Type för resultatet MethodCallExpression är lika med returtypen för metoden som representeras av method.
Gäller för
Call(MethodInfo, Expression[])
Skapar en MethodCallExpression som representerar ett anrop till en metod static (Shared i Visual Basic) som har argument.
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);
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
Parametrar
- method
- MethodInfo
En MethodInfo som representerar en metod static (Shared i Visual Basic) som anger egenskapen Method lika med.
- arguments
- Expression[]
En matris med Expression objekt som ska användas för att fylla samlingen Arguments .
Returer
En MethodCallExpression som har egenskapen NodeType lika med Call och Method egenskaperna och Arguments inställda på de angivna värdena.
Undantag
method är null.
Antalet element i arguments är inte lika med antalet parametrar för metoden som representeras av method.
-eller-
Ett eller flera av elementen arguments i kan inte tilldelas motsvarande parameter för metoden som representeras av method.
Kommentarer
Om arguments inte nullmåste det ha samma antal element som antalet parametrar för metoden som representeras av method. Varje element i arguments får inte vara null och måste kunna tilldelas motsvarande parameter methodför , eventuellt efter citat.
Note
Ett element anges endast om motsvarande metodparameter är av typen Expression. Citat innebär att elementet omsluts i en Quote nod. Den resulterande noden är en UnaryExpression vars Operand egenskap är elementet argumentsi .
Egenskapen Arguments för resultatet MethodCallExpression är tom om arguments är null. Annars innehåller den samma element som arguments, av vilka vissa kan citeras.
Egenskapen Type för resultatet MethodCallExpression är lika med returtypen för metoden som representeras av method. Egenskapen Object är null.
Gäller för
Call(MethodInfo, Expression)
Skapar en MethodCallExpression som representerar ett anrop till en metod static (Shared i Visual Basic) som tar ett 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
Parametrar
- method
- MethodInfo
A MethodInfo för att ange egenskapen Method lika med.
- arg0
- Expression
Det Expression som representerar det första argumentet.
Returer
En MethodCallExpression som har egenskapen NodeType lika med Call och Object egenskaperna och Method inställda på de angivna värdena.
Undantag
method är null.
Exempel
I följande exempel visas hur du skapar ett uttryck som anropar en metod static (Shared i Visual Basic) som använder ett 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
Gäller för
Call(MethodInfo, IEnumerable<Expression>)
Skapar en MethodCallExpression som representerar ett anrop till en statisk metod (delad i 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);
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
Parametrar
- method
- MethodInfo
Det MethodInfo som representerar målmetoden.
- arguments
- IEnumerable<Expression>
En samling som Expression representerar anropsargumenten.
Returer
En MethodCallExpression som har egenskapen NodeType lika med Call och Object egenskaperna och Method inställda på de angivna värdena.
Gäller för
Call(Expression, MethodInfo)
Skapar ett MethodCallExpression som representerar ett anrop till en metod som inte tar några argument.
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
Parametrar
- instance
- Expression
En Expression som anger instansen för ett instansmetodanrop (skicka null för en static -metod (Shared i Visual Basic).
- method
- MethodInfo
A MethodInfo för att ange egenskapen Method lika med.
Returer
En MethodCallExpression som har egenskapen NodeType lika med Call och Object egenskaperna och Method inställda på de angivna värdena.
Undantag
method är null.
-eller-
instance är null och method representerar en instansmetod.
instance. Typen kan inte tilldelas till deklareringstypen för metoden som representeras av method.
Exempel
I följande kodexempel visas hur du skapar ett uttryck som anropar en metod utan 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
Kommentarer
Om du vill representera ett anrop till en metod static (Shared i Visual Basic) skickar du null för parametern instance när du anropar den här metoden.
Om method representerar en instansmetod Type måste egenskapen instance för vara tilldelad till deklareringstypen för metoden som representeras av method.
Egenskapen Arguments för resultatet MethodCallExpression är tom. Egenskapen Type är lika med returtypen för metoden som representeras av method.
Gäller för
Call(MethodInfo, Expression, Expression)
Skapar en MethodCallExpression som representerar ett anrop till en statisk metod som tar två argument.
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
Parametrar
- method
- MethodInfo
A MethodInfo för att ange egenskapen Method lika med.
- arg0
- Expression
Det Expression som representerar det första argumentet.
- arg1
- Expression
Det Expression som representerar det andra argumentet.
Returer
En MethodCallExpression som har egenskapen NodeType lika med Call och Object egenskaperna och Method inställda på de angivna värdena.
Undantag
method är null.