static void Main(string[] args)
        {
            Program p = new Program();

            List <int> lstInt = new List <int>();

            lstInt.Add(40);
            lstInt.Add(80);
            lstInt.Add(90);

            Predicate <int> pred = p.IsGreaterThan50;
            int             i    = lstInt.Find(pred);          // 找到匹配的第一个元素,此处为80

            Console.WriteLine("大于50的第一个元素为{0}", i);

            List <int> all = lstInt.FindAll(pred);

            for (int j = 0; j < all.Count(); j++)
            {
                Console.WriteLine("大于50的数组中元素为{0}", all[j]);  // 找出所有匹配条件的
            }

            List <Condition>          conditions = new List <Condition>();
            Condition0                c0         = new Condition0(p.testTrue);
            Condition1 <int>          c1         = new Condition1 <int>(p.IsGreaterThan50, 40);
            Condition1 <int>          c1a        = new Condition1 <int>(p.IsGreaterThan50, () => { return(60); });
            Condition2 <float, float> c2         = new Condition2 <float, float>(p.test2, () => { return(1); }, () => { return(2); });
            Condition2 <float, float> c2a        = new Condition2 <float, float>(p.test2, 0.1f, 0.01f);

            conditions.Add(c0);
            conditions.Add(c1);
            conditions.Add(c1a);
            conditions.Add(c2);
            conditions.Add(c2a);

            //failed
            //List<Operation<object>> list = new List<Operation<object>>();
            //list.Add(new Operation0<void>(()=>{}));

            Operation op1 = new Operation1 <uint>((uint id) => { Console.WriteLine("operation:" + id); }, Program.getId);

            op1.operate();
            op1.operate();
            op1.operate();
            op1.operate();

            //failed
            //object outObj = null;
            //Operation op2 = new Operation2<uint,out object>((uint id,out object obj) =>{ Console.WriteLine("operation:" + id); obj = id;}, Program.getId,out outObj);
            //op2.operate();

            foreach (Condition c in conditions)
            {
                Console.WriteLine(c.isTrue());
            }



            Console.ReadLine();
        }
Example #2
0
        static void Main(string[] args)
        {
            //Operation op = Double;
            Operation op = delegate(int num)
            {
                Console.WriteLine("{0} x 2 = {1}", num, num * 2);
                Console.WriteLine("{0} x 3 = {1}", num, num * 3);
                Console.WriteLine("{0} x 4 = {1}", num, num * 4);
                Console.WriteLine("{0} x 5 = {1}", num, num * 5);
            };

            op(2);
            //=======================================
            Operation1 op1 = delegate(int num)
            {
                return(num * 2);
            };

            int value = op1(2);

            Console.WriteLine(value);
            //=======================================

            Operation2 op2 = num =>   //(int num)=>
            {
                Console.WriteLine("{0} x 2 = {1}", num, num * 2);
            };

            op2(2);
            //=======================================

            Operation2 op3 = num => Console.WriteLine("{0} x 2 = {1}", num, num * 2);

            op3(2);
            //=======================================
            Action <int> op4 = num => Console.WriteLine("{0} x 2 = {1}", num, num * 2);

            op4(5);
            //=======================================

            Func <int, int> op5 = num => { return(num * 5); };
            Func <int, int> op6 = num => num * 6;

            Console.WriteLine(op5(2));
            Console.WriteLine(op6(2));
        }
Example #3
0
        public static R ExecuteOperation <R>(string subor, bool save, bool close, string ulozAko, Operation1 <R, Workbook> worker)
        {
            Workbook workbook = Startup(subor);

            try { return(worker(workbook)); }
            finally { Cleanup(workbook, save, close, ulozAko); }
        }