2015年11月18日 星期三

C14_5 多點傳送的委派的例子

using System;
namespace C14_5
{
    delegate void TestDelegate(double value);
    public class MyDelegate
    {
        public static void F(double value)
        {
            double result = value * 2;
            Console.WriteLine("F-value:{0} result:{1}", value, result);
        }
        public static void F2(double value)
        {
            double result = value * 3;
            Console.WriteLine("F2-value:{0} result:{1}", value ,result);
        }
        public static void F3(double value)
        {
            double result = value * value;
            Console.WriteLine("F3-vlaue:{0} reuslut:{1}", value ,result);
        }
       
    }
    public class Test
    {
        public static void Main()
        {
            //測試多點傳送委派
            double x = 2.2;
            TestDelegate test = new TestDelegate(MyDelegate.F);
            test += new TestDelegate(MyDelegate.F2);
            test += new TestDelegate(MyDelegate.F3);

            test(x);
            Console.WriteLine("取消F2後的結果");
            //取消一個委派
            test -= new TestDelegate(MyDelegate.F2);
            test(x);
        }
    }
}

沒有留言: