#1,152 – The Action Delegate Type
August 4, 2014 1 Comment
The .NET Framework includes the Action predefined delegate type that represents the signature of a method that accepts zero or more parameters and does not have a return value (i.e. returns void).
Overloads of Action are :
- delegate void Action()
- delegate void Action(T p1)
- delegate void Action(T1 p1, T2 p2)
- etc…
You might define your own delegate type:
public delegate void Merger<T1,T2>(T1 thing1, T2 thing2); static void MergeIntAndString<T1,T2>(Merger<T1,T2> myMerger, T1 n, T2 s) { myMerger(n, s); } public static void ConcatIntString(int n, string s) { Console.WriteLine("{0}{1}", n, s); } static void Main(string[] args) { MergeIntAndString(ConcatIntString, 42, "Adams"); }
However, you could instead use the Action delegate type, avoiding the definition of your own custom delegate type.
static void MergeIntAndString<T1,T2>(Action<T1,T2> myMerger, T1 n, T2 s) { myMerger(n, s); }