#if (NET20)
namespace System
{
/// Encapsulates a method that has one parameter and returns a value of the type specified by the TResult parameter.
/// The type of the return value of the method that this delegate encapsulates.
/// The return value of the method that this delegate encapsulates.
internal delegate TResult Func();
/// Encapsulates a method that has one parameter and returns a value of the type specified by the TResult parameter.
/// The type of the parameter of the method that this delegate encapsulates.
/// The type of the return value of the method that this delegate encapsulates.
/// The parameter of the method that this delegate encapsulates.
/// The return value of the method that this delegate encapsulates.
internal delegate TResult Func(T arg);
/// Encapsulates a method that has two parameters and returns a value of the type specified by the TResult parameter.
/// The type of the first parameter of the method that this delegate encapsulates.
/// The type of the second parameter of the method that this delegate encapsulates.
/// The type of the return value of the method that this delegate encapsulates.
/// The first parameter of the method that this delegate encapsulates.
/// The second parameter of the method that this delegate encapsulates.
/// The return value of the method that this delegate encapsulates.
internal delegate TResult Func(T1 arg1, T2 arg2);
/// Encapsulates a method that has two parameters and does not return a value.
/// The type of the first parameter of the method that this delegate encapsulates.
/// The type of the second parameter of the method that this delegate encapsulates.
/// The first parameter of the method that this delegate encapsulates.
/// The second parameter of the method that this delegate encapsulates.
internal delegate void Action(T1 arg1, T2 arg2);
}
#endif