Ejemplo n.º 1
0
        public static void ExplicitInstance()
        {
            var zeroThreshold = new ThresholdComparer {
                Threshold = 0
            };
            var tenThreshold = new ThresholdComparer {
                Threshold = 10
            };
            var hundredThreshold = new ThresholdComparer {
                Threshold = 100
            };

            Predicate <int> greaterThanZero       = zeroThreshold.IsGreaterThan;
            Predicate <int> greaterThanTen        = tenThreshold.IsGreaterThan;
            Predicate <int> greaterThanOneHundred = hundredThreshold.IsGreaterThan;

            Console.WriteLine(greaterThanZero(42));
            Console.WriteLine(greaterThanTen(42));
            Console.WriteLine(greaterThanOneHundred(42));

            Predicate <int> megaPredicate1 =
                greaterThanZero + greaterThanTen + greaterThanOneHundred;

            Predicate <int> megaPredicate2 = greaterThanZero;

            megaPredicate2 += greaterThanTen;
            megaPredicate2 += greaterThanOneHundred;
        }
Ejemplo n.º 2
0
        public static void UsingCreateDelegate()
        {
            var zeroThreshold = new ThresholdComparer {
                Threshold = 0
            };

            MethodInfo m = typeof(ThresholdComparer).GetMethod("IsGreaterThan");
            var        greaterThanZero = (Predicate <int>)m.CreateDelegate(
                typeof(Predicate <int>), zeroThreshold);

            Console.WriteLine(greaterThanZero(42));
        }