A simple guide to using delegates in C#.
It should be suitable for anybody but is particularly aimed at C/C++ programmers who are more used to using function pointers and function objects as a means of passing function parameters.
For the C/C++ equivalent of using callbacks see this link:
https://www.technical-recipes.com/2016/how-to-write-callbacks-in-c/
Step 1: declare the delegate
public delegate int Transform(int value);
Step 2: create methods for the delegate
public int DoubleValue(int value)
{
return value * 2;
}
public int SquareValue(int value)
{
return value * value;
}
Step 3: Instantiate the delegate and use it
TransformValue doubleValue = DoubleValue;
Full Code listing showing example usage
using System;
namespace Delegates
{
internal class Program
{
#region Delegates
public delegate int TransformValue(int value);
#endregion
public static int DoubleValue(int value)
{
return value * 2;
}
public static int SquareValue(int value)
{
return value * value;
}
private static void Main(string[] args)
{
TransformValue doubleValue = DoubleValue;
TransformValue squareValue = SquareValue;
const int Value = 10;
Console.WriteLine("Value doubled = " + doubleValue(Value));
Console.WriteLine("Value doubled = " + squareValue(Value));
}
}
}
Giving the following output as follows:
