Beispiel #1
0
        static void Main(string[] args)
        {
            //Завдання: Cтворіть застосунок, який демонструю роботу делегатів:
            //	1.Делегат не повертає значення, та приймає один параметр.(+)
            //	2.Делегат не повертає значення, та не приймає параметрів.(+)
            //	3.Делегат не повертає значення, та приймає один параметр(використати вбудований варіант делегату).(+)
            //	4.Делегат не повертає значення, та не приймає параметрів(використати вбудований варіант делегату).(+)
            //	5.Навести приклади використання вбудованих делегатів у вбудованих класах.

            //1
            SampleOne firstObj = new SampleOne(5);

            firstObj.DontReturnVal(5);
            firstObj.CallFirstDelegate(firstObj.DontReturnVal, 25);

            //2
            NoParamSample secondObj = firstObj.noParamFunc;

            secondObj();

            //3
            Action <int> actionDelegate = firstObj.DontReturnVal;

            actionDelegate(123);

            //4
            Action needMoreAction = firstObj.noParamFunc;

            needMoreAction();



            Console.ReadKey();
        }
Beispiel #2
0
        public void verify_naming_collisions()
        {
            var parser = new Parser();

            var one = new SampleOne();
            var two = new SampleTwo();

            Assert.IsTrue(parser.Parse <SampleOne>("0 == Vehicle.Car").Invoke(one));
            Assert.AreEqual(0, parser.GetFields().Count);
            Assert.AreEqual(1, parser.GetConsts().Count);
            Assert.IsTrue(parser.Parse <SampleOne>("Vehicle == Vehicle.Car").Invoke(one));
            Assert.AreEqual(1, parser.GetFields().Count);
            Assert.AreEqual(1, parser.GetConsts().Count);

            Assert.IsTrue(parser.Parse <SampleTwo>("-1 == Vehicle.Car").Invoke(two));
            Assert.AreEqual(1, parser.GetFields().Count);
            Assert.AreEqual(0, parser.GetConsts().Count);
            Assert.IsTrue(parser.Parse <SampleTwo>("Vehicle.Car != ParserTest.Vehicle.Car").Invoke(two));
            Assert.AreEqual(1, parser.GetFields().Count);
            Assert.AreEqual(1, parser.GetConsts().Count);
        }
        public void verify_naming_collisions()
        {
            var parser = new Parser();

            var one = new SampleOne();
            var two = new SampleTwo();

            Assert.IsTrue(parser.Parse<SampleOne>("0 == Vehicle.Car").Invoke(one));
            Assert.AreEqual(0, parser.GetFields().Count);
            Assert.AreEqual(1, parser.GetConsts().Count);
            Assert.IsTrue(parser.Parse<SampleOne>("Vehicle == Vehicle.Car").Invoke(one));
            Assert.AreEqual(1, parser.GetFields().Count);
            Assert.AreEqual(1, parser.GetConsts().Count);

            Assert.IsTrue(parser.Parse<SampleTwo>("-1 == Vehicle.Car").Invoke(two));
            Assert.AreEqual(1, parser.GetFields().Count);
            Assert.AreEqual(0, parser.GetConsts().Count);
            Assert.IsTrue(parser.Parse<SampleTwo>("Vehicle.Car != ParserTest.Vehicle.Car").Invoke(two));
            Assert.AreEqual(1, parser.GetFields().Count);
            Assert.AreEqual(1, parser.GetConsts().Count);
        }