사용 하는 방법만
간단히 보자..
namespace CSharpExample { public delegate void Defeat();//이벤트 등록을위한 델리게이트 public class Zealot { public void Attack() { Console.WriteLine("Zealot Attacked !!"); } } public class Dragon { public void Attack() { Console.WriteLine("Dragon Attacked !!"); } } public class Carrier { public void Attack() { Console.WriteLine("Carrier intercepter Attacked !!"); } } public class Group { private event Defeat EnemyDetected; //이벤트 델리게이트 필드 public void AddCombatUnit(Defeat unit) { EnemyDetected += unit;//이벤트시 실행 함수 추가 부분 } public void AttackEnemy() { EnemyDetected();//이벤트 실행.. 등록되있는 모든 함수 실행한다 }//만약에 중간에 예외처리로 thorw된다면 그 다음 이벤트는 수행 되지 않음 } public class Starcraft4 { [STAThread] public static void Main() { Zealot unit10 = new Zealot(); Dragon unit20 = new Dragon(); Carrier unit30 = new Carrier(); Group group1 = new Group(); group1.AddCombatUnit(new Defeat(unit10.Attack));//이벤트에 추가 group1.AddCombatUnit(new Defeat(unit20.Attack));//이벤트에 추가 group1.AddCombatUnit(new Defeat(unit30.Attack));//이벤트에 추가 group1.AttackEnemy();//이벤트 발생(실행한다) } } }