Skip to main content

📪 馬戲團

1. 定義要使用的委派

  • 使用delegate關鍵字
  • 定義傳入參數string name
    /// <summary>
/// 定義委派
/// </summary>
/// <param name="name">姓名</param>
private delegate void Animal(string name);

2. 定義要接收委派的函式

  • 定義馬戲團表演的函式
  • 傳入委派與動物姓名
  • 在函式裡實現委派animal(name);
    /// <summary>
/// 定義函式
/// </summary>
/// <param name="animal">動物的委派</param>
/// <param name="name">動物名字</param>
private static void RunCircus(Animal animal, string name)
{
animal(name);
}

3. 定義小狗函式

    /// <summary>
/// 小狗函式
/// </summary>
/// <param name="name">姓名</param>
private static void Dog(string name)
{
Console.WriteLine($"汪汪! 我是{name}");
}

4. 在主程式實例化動物委派

  • 將小狗作為函式帶入
   Animal deleDog = new Animal(Dog);

5. 將呼叫馬戲團函式

  • 將動物委派傳入
  RunCircus(deleDog, "小狗");

完整程式碼

using System;
using System.Collections.Generic;
using System.Text;

namespace CSharpExercise.EventDemo
{
public class DelegateExercise1
{
/// <summary>
/// 主程式
/// </summary>
public void Main()
{
Animal deleDog = new Animal(Dog);

RunCircus(deleDog, "小狗");

}

/// <summary>
/// 定義委派
/// </summary>
/// <param name="name">姓名</param>
private delegate void Animal(string name);

/// <summary>
/// 定義函式
/// </summary>
/// <param name="animal">動物的委派</param>
/// <param name="name">動物名字</param>
private static void RunCircus(Animal animal, string name)
{
animal(name);
}

/// <summary>
/// 小狗函式
/// </summary>
/// <param name="name">姓名</param>
private static void Dog(string name)
{
Console.WriteLine($"汪汪! 我是{name}");
}


}
}