// From MSDN: namespace System { public delegate void Action(); public delegate void Action(T obj); public delegate void Action(T1 arg1, T2 arg2); public delegate void Action(T1 arg1, T2 arg2, T3 arg3); public delegate void Action (T1 arg1, T2 arg2, T3 arg3, T4 arg4); public delegate TResult Func(); public delegate TResult Func(T arg); public delegate TResult Func(T1 arg1, T2 arg2); public delegate TResult Func (T1 arg1, T2 arg2, T3 arg3); public delegate TResult Func (T1 arg1, T2 arg2, T3 arg3, T4 arg4); }