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

namespace Delegates
{
    // W książce, ten przykład zawiera klasę Program definiującą metodę Main, aby 
    // pokazać, że w przykładzie używanych jest więcej klas, i aby łatwo można było
    // wykonać przykład jako niezależny program. 
    // Jednak w tych kodach, w tym samym projekcie umieściłem także inne przykłady, 
    // przez co jest w nim kilka metod Main. Projekt został skonfigurowany w taki 
    // sposób, by punktem wejścia była metoda Main z pliku Program.cs. (Bez tego
    // umieszczenie w projekcie kilku metod Main spowodowałoby zgłoszenie błędu.)
    class Example6
    {
        // Listing 9-6
        internal class Program
        {
            static void Main(string[] args)
            {
                Predicate<int> p1 = Tests.IsGreaterThanZero;
                Predicate<int> p2 = Tests.IsLessThanZero;
            }
        }

        internal class Tests
        {
            public static bool IsGreaterThanZero(int value)
            {
                return value > 0;
            }

            public static bool IsLessThanZero(int value)
            {
                return value < 0;
            }
        }
    }
}
