2015年12月16日 星期三

委派的多點傳送(多點傳送委派)

多點傳送委派是指參考多個委派方法。當叫用委派時,它會叫用每個方法。要注意的是委派必須是同型別,且回傳型別必須是void。也就是說不能有輸出參數,但可以帶有參考參數。
在現實世界中如同你一個人幫多人代繳學費的意思是一樣的。
範例如下:
using System;
namespace Test_Delegate
{
  //宣告委派
  delegate void TestDelegate (double value) ;
   //宣告類別
  public class MyDelegate
  {
    //方法一
     public static void F (double value)
     {
       double result = vaule * 2 ;
       Console.WrileLine ("F-value: { 0 } result { 1 } ", value, result) ;
      }
    //方法二
     public static void F2 (double value)
     {
       double result = value * 3 ;
       Console.WrilteLine ("F2-value: { 0 } result { 1 } ", value, result) ;
      }
     //方法三
     public static void F3 (double value)
     {
       double result = value *value ;
       Consle.WriteLine ("F3-value: { 0 } result { 1 } ", value, result) ;
      }
   }
    //宣告類別
   public class Test
   {
    public static void Main ( )
     {
     //設定傳入委派的參數
     double x_value=1.732 ;
     //實作一個委派物件
      TestDelegate test = new TestDelegate (MyDelegate.F) ;
      //傳入第二個委派
       test += new TestDelegate (MyDelegate.F2) ;
      //傳入第三個委派
       test += new TestDelegate (MyDelegate F3) ;
       //傳入參數
       test (x_value) ;
       Console.WriteLine (" 取消F2後的結果 ") ;
       //取消F2的委派
       test -= new TestDelegate (MyDelegate F2) ;
       test (x_value) ;
      }
    }
 }


   

沒有留言:

張貼留言