Expression.Call Method (MethodInfo, Expression, Expression)
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Creates a MethodCallExpression that represents a call to an static method that takes two arguments.
Assembly: System.Core (in System.Core.dll)
'Declaration Public Shared Function Call ( _ method As MethodInfo, _ arg0 As Expression, _ arg1 As Expression _ ) As MethodCallExpression
Parameters
- method
- Type: System.Reflection.MethodInfo
A MethodInfo to set the Method property equal to.
- arg0
- Type: System.Linq.Expressions.Expression
The Expression that represents the first argument.
- arg1
- Type: System.Linq.Expressions.Expression
The Expression that represents the second argument.
Return Value
Type: System.Linq.Expressions.MethodCallExpressionA MethodCallExpression that has the NodeType property equal to Call and the Object and Method properties set to the specified values.
| Exception | Condition |
|---|---|
| ArgumentNullException | method is null. |
The following code example shows how to create an expression that calls an instance method that has two arguments.
' 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. outputBlock.Text &= callExpr.ToString() & vbCrLf ' The following statement first creates an expression tree, ' then compiles it, and then executes it. outputBlock.Text &= Expression.Lambda(Of Func(Of Integer))(callExpr).Compile()() & vbCrLf End Sub ' This code example produces the following output: ' ' new SampleClass().AddIntegers(1, 2) ' 3
Show: