1. 程式人生 > >C#委托持有方法的初階

C#委托持有方法的初階

gate ogr clas c# 就是 一個 ring tel ole

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace ConsoleApplication13
{
class Program
{
static void Main(string[] args)
{
Cat c = new Cat(); //測試
Dog d = new Dog();
Mouse m = new Mouse();
c.Rigist(d.Alarm);
c.Rigist(m.Run);
c.Walk();
}
}

delegate void IsCatRun(); //定義一個委托 委托說白了就是一種持有方法的方法
class Cat
{
IsCatRun isCatRun; //在需要調用的類中申明這個委托

public void Rigist(IsCatRun isCatRun) //提供註冊委托的方法
{
this.isCatRun += isCatRun; //委托持有多種方法時要用 +=
}

public void Walk()
{
Console.WriteLine("貓在走");
Thread.Sleep(3000);
isCatRun(); //在方法執行中加入委托
}

}
class Dog
{
public void Alarm()
{
Console.WriteLine("警告狗來了");
}
}

class Mouse
{
public void Run()
{
Console.WriteLine("都來了快跑!");
}
}
}

C#委托持有方法的初階