Action delegate is an in-built generic type delegate. This delegate saves you from defining a custom delegate as shown in the below examples and make your program more readable and optimized. It is defined under System namespace. It can contain minimum 1 and maximum of 16 input parameters and does not contain any output parameter. The Action delegate is generally used for those methods which do not contain any return value, or in other words, Action delegate is used with those methods whose return type is void. It can also contain parameters of the same type or of different types.
Syntax:
// One input parameter
public delegate void Action < in P > (P obj);
// Two input parameters
public delegate void Action < in P1, in P2 >(P1 arg1, P2 arg2);
Here, P, P1, and P2 are the type of the input parameters & arg1 and agr2 are the parameters of the method that Action delegate encapsulates.
Example: Below program illustrate how we create a custom delegate.
using System;
class GFG {
public delegate void my_delegate( int p, int q);
public static void myfun( int p, int q)
{
Console.WriteLine(p - q);
}
static public void Main()
{
my_delegate obj = myfun;
obj(10, 5);
}
}
|
Example: It demonstrates the use of Action delegate.
using System;
class GFG {
public static void myfun( int p, int q)
{
Console.WriteLine(p - q);
}
static public void Main()
{
Action< int , int > val = myfun;
val(20, 5);
}
}
|
Explanation: In the above example, using Action delegate reduce the size of the code and make the program more readable. Here action delegate contains two input parameters. And we directly assign the myfun method to the Action delegate.
Important Points:
Last Updated :
07 Aug, 2019
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...