Esempio n. 1
1
        static void Main(string[] args)
        {
            Console.WriteLine("Add or Multiply?");
            var answer = Console.ReadLine();

            if (answer.ToLower() == "add")
            {
                nc = new NumberChanger(AddNum);
            }
            else
            {
                nc = new NumberChanger(MultNum);
            }

            //calling the methods using the delegate objects
            PrintIt();
            Console.ReadKey();
        }
Esempio n. 2
0
        private int DelegateSimple_0()
        {
            //create delegate instances
            int localVar = 33;
            //create delegate instances
            NumberChanger nc = delegate(int x)
            {
                int lnc = 12;
                lnc     += x;
                lnc     += num;
                lnc     += localVar;
                localVar = 22;
                return(lnc);
            }

            ;
            NumberChanger nc1 = new NumberChanger(AddNum);
            NumberChanger nc2 = new NumberChanger(MultNum);

            nc += nc1;
            nc += nc2;
            nc += ncField;
            //calling the methods using the delegate objects
            nc1(25);
            int r1 = getNum();

            nc2(5);
            int r2 = getNum();

            nc(5);
            int r3 = getNum();

            return(r1 + r2 + r3 + localVar);
        }
        static void GenericDelegatesDemo()
        {
            NumberChanger <int> nc = new NumberChanger <int>(AddNum);

            nc(10);
            Console.WriteLine(GetNum());
        }
        public List <string> run()
        {
            List <string> results = new List <string>();

            /*NumberChanger nc1 = new NumberChanger(AddNum);
             * NumberChanger nc2 = new NumberChanger(MultNum);
             *
             * //calling the methods using the delegate objects
             * nc1(25);
             * results.Add(string.Format("Value of Num: {0}", getNum()));
             * nc2(5);
             * results.Add(string.Format("Value of Num: {0}", getNum()));*/


            NumberChanger nc;
            NumberChanger nc1 = new NumberChanger(AddNum);
            NumberChanger nc2 = new NumberChanger(MultNum);

            nc  = nc1;
            nc += nc2;

            //calling multicast
            nc(5);
            results.Add(string.Format("Value of Num: {0}", getNum()));

            return(results);
        }
Esempio n. 5
0
        static void Main(string[] args)
        {
            Console.WriteLine("asdsad");
            Console.WriteLine("thread in main is :" + Thread.CurrentThread.ManagedThreadId);
            Thread thread2 = new Thread(someMethod);

            thread2.Start();

            caller();
            var thread1 = Thread.CurrentThread.ManagedThreadId;

            Console.WriteLine("thread in main is :" + thread1);
            Console.WriteLine("asdsad");

            HandelingThreads();

            NumberChanger nc = delegate(int x)
            {
                Console.WriteLine("Anonymous Method: {0}", x);
            };

            nc(10);
            nc = new NumberChanger(AddNum);
            nc(5);

            FillValues();
            foreach (var item in Filter())
            {
                Console.WriteLine(item);
            }
        }
Esempio n. 6
0
 static void Main(string[] args)
 {
     // 创建一个Square的实例,这个语句其实就是下边这个
     //Transformer transformer = new Transformer (Square); 和下边语句同样效果
     //Transformer t = Square;
     //var result = t(3);
     //Console.WriteLine(result);
     int[] values = { 1, 2, 3 };
     Transforme.Transform (values, Square);
     foreach (var item in values)
     {
         Console.WriteLine(item+" ");
     }
     NumberChang numberChang = new NumberChang();
     var num1 = new NumberChanger(numberChang.AddNum);
     var num2 = new NumberChanger(numberChang.NulNum);
     Console.WriteLine($"{num1(10)},{numberChang.GetNum()}");
     Console.WriteLine($"{num2(5)},{numberChang.GetNum()}");
     ProgressReporter p = Write;
     p += writeFile;
     p -= writeFile;
     ProgressRepor.HardWork(p);
     ProRepotrer pro = new ProRepotrer();
     ProRepo proRepo = pro.Instance;
     proRepo(99);
     Console.WriteLine(p.Target==pro);
     Console.WriteLine(p.Method);
 }
Esempio n. 7
0
        public string CallDelegates(int numberFirst, int numberSecond)
        {
            StringBuilder stringBuilder  = new StringBuilder();
            NumberChanger numberAddition = new NumberChanger(AddNumber);
            NumberChanger numberMultipy  = new NumberChanger(MultiplyNumber);
            NumberChanger addAndMultiply;

            // + composing the delegate; - remove the compostied delegate
            addAndMultiply = numberAddition + numberMultipy;

            var additionResult = numberAddition(numberFirst, numberSecond);

            stringBuilder.Append("\nAddition no." + OperationCounter + " : ");
            stringBuilder.Append(additionResult);
            var multiplicationResult = numberMultipy(numberFirst, numberSecond);

            stringBuilder.Append("\nMultiplication no." + OperationCounter + " : ");
            stringBuilder.Append(multiplicationResult);
            var addAndMultiplyResult = addAndMultiply(numberFirst, numberSecond);

            stringBuilder.Append("\nAddition and Multiplication no. " + OperationCounter + " : ");
            stringBuilder.Append(addAndMultiplyResult);

            return(stringBuilder.ToString());
        }
Esempio n. 8
0
        static void Main(string[] args)
        {
            ////create delegate instances
            //NumberChanger nc1 = new NumberChanger(AddNum);
            //NumberChanger nc2 = new NumberChanger(MultNum);

            ////calling the methods using the delegate objects
            //nc1(25);
            //Console.WriteLine("Value of Num: {0}", getNum());
            //nc2(5);
            //Console.WriteLine("Value of Num: {0}", getNum());
            //Console.ReadKey();



            //Multicast delegates
            //create delegate instances
            NumberChanger nc;
            NumberChanger nc1 = new NumberChanger(AddNum);
            NumberChanger nc2 = new NumberChanger(MultNum);

            nc  = nc1;
            nc += nc2;

            //calling multicast
            nc(5);
            Console.WriteLine("Value of Num: {0}", getNum());
            Console.ReadKey();
        }
Esempio n. 9
0
        static void Main(string[] args)
        {
            //create delegate instances
            NumberChanger nc;
            NumberChanger nc1 = new NumberChanger(AddNum);
            NumberChanger nc2 = new NumberChanger(MultNum);

            num = 10;
            //calling the methods using the delegate objects
            nc1(25);
            Console.WriteLine("Value of Num: {0}", getNum());
            nc2(5);
            Console.WriteLine("Value of Num: {0}", getNum());

            nc  = nc1;  // register first method
            nc += nc2;  // register second method

            num = 10;
            //calling multicast
            nc(5);  // call AddNum and MultNum
            Console.WriteLine("Value of Num: {0}", getNum());


            num = 10;
            nc -= nc1; // unregister first method
            nc(2);     // call MultNum only
            Console.WriteLine("Value of Num: {0}", getNum());
        }
Esempio n. 10
0
        static void Main(string[] args)
        {
            //Console.WriteLine("het nummer is {0}", AddNumber(3));
            NumberChanger nc = new NumberChanger(AddNumber);

            Console.WriteLine("het nummer is {0}", nc(5));
            Console.WriteLine("het nummer is {0}", nc.Invoke(3));
            NumberChanger ncMult = new NumberChanger(Multinumber);

            Console.WriteLine("Het nummer is {0}", ncMult(2));
            NumberChanger ncDev = new NumberChanger(DevideNumber);

            Console.WriteLine("Het nummer is {0}", ncDev(2));
            NumberChanger ncSub = new NumberChanger(subtractNumber);

            Console.WriteLine("Het nummer is {0}", ncSub(3));

            TextChanger tc = new TextChanger(AddText);

            Console.WriteLine("De tekst is {0}", tc(" en ik wil een kopje koffie"));

            //instantiate the delegate
            //TextChanger word = DelegateMethod;
            //call the delegate
            //word("helloow");
            GetWord  word  = WordValue;
            GetValue value = NumberValue;

            value(5);
            value(ncSub(5));
            //value(nc(1));
            value(ncMult(5));
            word(message);
        }
Esempio n. 11
0
        static void Main(string[] args)
        {
            //create delegate instances using  the anonymous method
            NumberChanger nc = delegate(int x) {
                Console.WriteLine("Anonymous Method: {0}", x);
            };

            //calling the delegate  directly above using the anonymous method
            nc(10);

            //instantiating the delegate using the named method
            // now, whenever nc is passed a value, it will be sent
            // to the addNum method
            nc = new NumberChanger(AddNum);

            //calling the delegate using the named methods
            nc(5);

            //instantiating the delegate using another named method
            nc = new NumberChanger(MultNum);

            //calling the delegate using the named methods
            nc(2);
            Console.ReadKey();
        }
        public static void demo()
        {
            Console.WriteLine("\n === R_Anonymous_Func ===");

            // 使用匿名方法创建委托实例
            NumberChanger nc = delegate(int x)
            {
                Console.WriteLine("Anonymous Method: {0}", x);
            };

            // 使用匿名方法调用委托
            nc(10);

            // 使用命名方法实例化委托
            nc = new NumberChanger(AddNum);

            // 使用命名方法调用委托
            nc(5);

            // 使用另一个命名方法实例化委托
            nc = new NumberChanger(MultNum);

            // 使用命名方法调用委托
            nc(2);
        }
Esempio n. 13
0
        public static void Main(string[] args)
        {
            Console.WriteLine("");
            Console.WriteLine("");
            Console.WriteLine("Hello Anonymous Methods In C#..");

            Console.WriteLine("");
            Console.WriteLine("");
            Console.WriteLine("----------------------first example---------------------");
            Console.WriteLine("");
            Console.WriteLine("");

            //create delegate instances using anonymous method
            NumberChanger nc = delegate(int x) {
                Console.WriteLine("Anonymous method : {0}", x);
            };

            //calling the delegate using the anonymous method
            nc(100);

            //instantiating the delegate using the named methods
            nc = new NumberChanger(ClassDelegate.AddNum);
            //calling the delegate using the named methods
            nc(5);

            //instantiating the delegate using the other named methods
            nc = new NumberChanger(ClassDelegate.MultNum);

            //calling the delegate using the named methods
            nc(2);

            Console.ReadKey();
        }
Esempio n. 14
0
        /// <summary>
        /// 匿名類型5個特性:
        /// 1. 必須有初始值,以New初始化
        /// 2. 當成立匿名型別資料後,只能唯讀
        /// 3. 可以在Foreach中使用 (循環)
        /// 4. 支持感知智能 (強型別可以用.叫出屬性)
        /// 5. 可以擁有方法 (Method)
        /// </summary>
        public void Anonymous_Characteristic()
        {
            //1. 必須有初始值,以New初始化
            var newData = new { Name = "Louis", ID = 1234567 };

            // 2. 當成立匿名型別資料後,只能唯讀

            //newData.ID = 3345678; //這行會出錯 , 不可以設定值

            // 3. 可以在Foreach中使用 (循環)
            var newDataList = new[] { Name = "A", Name = "B" };

            foreach (var item in newDataList)
            {
                Console.WriteLine(item);
            }

            // 4. 支持感知智能 (強型別可以用.叫出屬性)
            var temp = newData.Name;

            // 5. 可以擁有方法 (Method)
            NumberChanger nc = delegate(int x)
            {
                Console.WriteLine("Anonymous Method: {0}", x);
            };
        }
Esempio n. 15
0
        public void PrintValue()
        {
            // 创建委托实例
            NumberChanger nc1 = new NumberChanger(AddNum);
            NumberChanger nc2 = new NumberChanger(MultNum);
            // 使用委托调用方法
            int a = nc1(25);

            Console.WriteLine(a); //35
            Console.WriteLine(GetNum());
            int b = nc2(5);

            Console.WriteLine(b); //175
            Console.WriteLine(GetNum());
            // 例1
            GreetPeople("Jimmy Zhang", EnglishGreeting);
            GreetPeople("张子扬", ChineseGreeting);
            GreetingDelegate delegate1;

            delegate1  = EnglishGreeting;
            delegate1 += ChineseGreeting;
            // 多播
            GreetPeople("王五", delegate1);
            delegate1("张三");
        }
Esempio n. 16
0
        public static void test()
        {
            NumberChanger nc1 = new NumberChanger(Addnum);
            NumberChanger nc2 = new NumberChanger(Multnum);

            nc1(25);
            System.Console.WriteLine(GetNum());
        }
Esempio n. 17
0
        static void Main(string[] args)
        {
            NumberChanger dl1 = new NumberChanger(Program.Add);
            NumberChanger dl2 = new NumberChanger(Program.Multiply);

            Console.WriteLine(dl1(20));
            Console.WriteLine(dl2(20));
            Console.ReadKey();
        }
Esempio n. 18
0
        static void Main()
        {
            num = 25;
            //NumberChanger n = new NumberChanger(Add);
            NumberChanger n2 = new NumberChanger((int x) => { num += x; });//lambda https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/statements-expressions-operators/lambda-expressions#statement-lambdas

            n2(25);
            int j = 5;
        }
        private void multi_cast_delegate(object sender, RoutedEventArgs e)
        {
            NumberChanger nc = new NumberChanger(AddNum);

            nc += new NumberChanger(MultNum);
            MessageBox.Show(getNum().ToString());
            nc(5);
            MessageBox.Show(getNum().ToString());
        }
Esempio n. 20
0
        static void Main(string[] args)
        {
            NumberChanger nc1 = new NumberChanger(AddNum);
            NumberChanger nc2 = new NumberChanger(AddNum2);

            nc1 += nc2;
            nc1(5);
            Console.WriteLine(getNum());
        }
Esempio n. 21
0
        static void VD1()
        {
            NumberChanger nc1 = new NumberChanger(TestDelegate.AddNum);
            NumberChanger nc2 = new NumberChanger(TestDelegate.MultNum);

            nc1(25);
            Console.WriteLine("Value of Num: {0}", TestDelegate.getNum());
            nc2(5);
            Console.WriteLine("Value of Num: {0}", TestDelegate.getNum());
        }
Esempio n. 22
0
        protected void Button6_Click(object sender, EventArgs e)
        {
            NumberChanger <int> deN1 = new NumberChanger <int>(DelegateDemo.AddNum);
            NumberChanger <int> deN2 = new NumberChanger <int>(DelegateDemo.MultNum);

            deN1(25);
            this.TextBox1.Text += string.Format($"\r\nValue of Num: {DelegateDemo.getNum()}"); //35 = 10+25
            deN2(5);
            this.TextBox1.Text += string.Format($"\r\nValue of Num: {DelegateDemo.getNum()}"); //175 = 35*5
        }
Esempio n. 23
0
        static void Main(string[] args)
        {
            NumberChanger nc1 = new NumberChanger(AddNum);
            NumberChanger nc2 = new NumberChanger(MultNum);

            nc1(25);
            Console.WriteLine("Value of Num : {0}", getNum());
            nc2(5);
            Console.WriteLine("Value of Num : {0}", getNum());
        }
Esempio n. 24
0
        static void Main(string[] args)
        {
            NumberChanger nc1 = new NumberChanger(AddNum);
            NumberChanger nc2 = new NumberChanger(MultNum);

            nc1(25);
            Console.WriteLine(GetNum());
            nc2(10);
            Console.WriteLine(GetNum());
        }
Esempio n. 25
0
        static void Main(string[] args)
        {
            NumberChanger <int> nc1 = new NumberChanger <int>(AddNum);
            NumberChanger <int> nc2 = new NumberChanger <int>(MultNum);

            nc1(25);
            Console.WriteLine(num);
            nc2(5);
            Console.WriteLine(num);
        }
Esempio n. 26
0
        public static int GetValue()
        {
            NumberChanger nc;
            var           nc1 = new NumberChanger(AddNum);
            var           nc2 = new NumberChanger(MultNum);

            nc  = nc1;
            nc += nc2;
            nc(5);
            return(num);
        }
Esempio n. 27
0
        static void Main(string[] args)
        {
            NumberChanger <int> nc1 = new NumberChanger <int>(AddNum);
            NumberChanger <int> nc2 = new NumberChanger <int>(MultNum);

            nc1(25);
            WriteLine("Value of Num: {0}", GetNum());
            nc2(5);
            WriteLine("Value of Num: {0}", GetNum());
            ReadKey();
        }
Esempio n. 28
0
        public static void CustomDelegate()
        {
            NumberChanger nc1 = new NumberChanger(AddNum);
            NumberChanger nc2 = new NumberChanger(MultNum);

            Console.WriteLine("Hello Custom Delegate!");
            nc1(25);
            Console.WriteLine("Value of Num: {0}", getNum());
            nc2(5);
            Console.WriteLine("Value of Num: {0}", getNum());
        }
Esempio n. 29
0
        static void Main(string[] args)
        {
            NumberChanger operateNumber = new NumberChanger(SumNumber);

            //Multicast delegate
            operateNumber += MultNumber;

            operateNumber(5);

            Console.WriteLine(GetNumber());
        }
        static void Main(string[] args)
        {
            //Console.WriteLine("Hello World!");
            NumberChanger nc1 = new NumberChanger(AddNum);
            NumberChanger nc2 = new NumberChanger(MultNum);

            nc1(25);
            Console.WriteLine($"Value of Num: {getNum()}");
            nc2(5);
            Console.WriteLine($"Value of Num: {getNum()}");
        }
Esempio n. 31
0
        static void Main(string[] args)
        {
            NumberChanger nc;
            NumberChanger nc1 = new NumberChanger(Program.Add);
            NumberChanger nc2 = new NumberChanger(Program.Multiply);

            nc  = nc1;
            nc += nc2;
            Console.WriteLine(nc(10));
            Console.ReadKey();
        }
Esempio n. 32
0
 static void Main(string[] args)
 {
     //create delegate instances
     NumberChanger nc1 = new NumberChanger(AddNum);
     NumberChanger nc2 = new NumberChanger(MultNum);
     //calling the methods using the delegate objects
     nc1(25);
     Console.WriteLine("Value of Num: {0}", getNum());
     nc2(5);
     Console.WriteLine("Value of Num: {0}", getNum());
     Console.ReadKey();
 }
Esempio n. 33
0
 static void Main(string[] args)
 {
     //create delegate instances
     NumberChanger nc;
     NumberChanger nc1 = new NumberChanger(AddNum);
     NumberChanger nc2 = new NumberChanger(MultNum);
     nc = nc1;
     nc += nc2;
     //calling multicast
     nc(5);
     Console.WriteLine("Value of Num: {0}", getNum());
     Console.ReadKey();
 }
Esempio n. 34
0
 static void Main(string[] args)
 {
     //create delegate instance(objects)
     NumberChanger nc1 = new NumberChanger(addNum);
     NumberChanger nc2 = new NumberChanger(multNum);
     NumberChanger nc;
     nc = nc1;
     nc += nc2;
     nc(5); //10+5=15  15*5=75
     Console.WriteLine("value of: {0}", getNum());
     //call method through delegate
     nc1(25);
     Console.WriteLine("value of: {0}", getNum());
     nc2(2);
     Console.WriteLine("value of: {0}", getNum());
 }
Esempio n. 35
0
        static void Main(string[] args)
        {
            //create delegate instances
            Console.WriteLine("Create a delegate for AddNum method");
            NumberChanger nc1 = new NumberChanger(AddNum);
            Console.WriteLine("Create a delegate for MultNum method");
            NumberChanger nc2 = new NumberChanger(MultNum);

            //calling the methods using the delegate objects
            Console.WriteLine("Call the delegate for adding numbers " + num + " + 25");
            nc1(25);
            Console.WriteLine("Value of Num: {0}", getNum());
            Console.WriteLine("Call the delegate for Multipling numbers " + num  + " * 5");
            nc2(5);
            Console.WriteLine("Value of Num: {0}", getNum());
            Console.ReadKey();
        }
Esempio n. 36
0
        static void Main(string[] args)
        {
            //create delegate instances using anonymous method
            NumberChanger nc1 = delegate (int x)
            {
                Console.WriteLine("Anonymous Method: {0}", x);
            };

            //instantiating the delegate using the named methods
            var nc2 = new NumberChanger(AddNum);

            //instantiating the delegate using another named methods
            var nc3 = new NumberChanger(MultNum);

            NumberChanger nc4 = x => { Console.WriteLine("Lambda Method: {0}", x); };

            var nc = nc1 += nc2 += nc3 += nc4;

            nc(10);

            Console.ReadKey();
        }
Esempio n. 37
0
        static void Main(string[] args)
        {
            //create delegate instances using anonymous method
            NumberChanger nc = delegate (int x)
            {
                Console.WriteLine("Anonymous Method: {0}", x);
            };

            //calling the delegate using the anonymous method
            nc(10);

            //instantiating the delegate using the named methods
            nc = new NumberChanger(AddNum);

            //calling the delegate using the named methods
            nc(5);

            //instantiating the delegate using another named methods
            nc = new NumberChanger(MultNum);

            //calling the delegate using the named methods
            nc(2);
            Console.ReadKey();
        }
Esempio n. 38
0
    public void TestNumberChanger()
    {
        Console.WriteLine("Testing Number Changer");
        //create delegate instances
        NumberChanger nc1 = new NumberChanger(AddNum);
        NumberChanger nc2 = new NumberChanger(MultNum);

        //calling the methods using the delegate objects
        nc1(25);
        Console.WriteLine("Value of Num: {0}", getNum());
        nc2(5);
        Console.WriteLine("Value of Num: {0}", getNum());
        Console.ReadKey();
    }