using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Delegates
{
    // Te dwa przykłady przedstawiają definicje typów z CLR, dlatego też zostały umieszczone
    // w komentarzach.

    //// Listing 9-13
    //public delegate void Action();
    //public delegate void Action<in T1>(T1 arg1);
    //public delegate void Action<in T1, in T2>(T1 arg1, T2 arg2);
    //public delegate void Action<in T1, in T2, in T3>(T1 arg1, T2 arg2, T3 arg3);

    //// Listing 9-14
    //public delegate TResult Func<out TResult>();
    //public delegate TResult Func<in T1, out TResult>(T1 arg1);
    //public delegate TResult Func<in T1, in T2, out TResult>(T1 arg1, T2 arg2);
    //public delegate TResult Func<in T1, in T2, in T3, out TResult>(
    //    T1 arg1, T2 arg2, T3 arg3);

}
