static void Main(string[] args) { #region FireStation station = new FireStation(); ThereIsAFire fireHouse = new ThereIsAFire(station.Call119); fireHouse += new ThereIsAFire(station.ShotOut); fireHouse += new ThereIsAFire(station.Escape); fireHouse("우리집"); //대리자의 장점 : 한꺼번에 여러개의 함수를 실행시킬 수 있다. Console.WriteLine(); ThereIsAFire fireWoorim = new ThereIsAFire(station.Call119); fireWoorim += new ThereIsAFire(station.Escape); //대리자 실행 fireWoorim("우림라이온밸리A"); #endregion Calculate calc; calc = delegate(int a, int b) { return(a + b); }; Console.WriteLine($"a+b = {calc(3, 5)}"); }
static void Main(string[] args) { ThereIsAFire fire = new ThereIsAFire(Call119); fire += new ThereIsAFire(ShotOut); // 기본문법 fire += Escape; // 약식문법 fire("문현동 전광빌라"); }
static void Main(string[] args) { ThereIsAFire fire = new ThereIsAFire(ShoutOut); fire += Call119; fire += Escape; fire("부경대학교 대연캠퍼스 C23"); }
static void Main(string[] args) { // 2. 델리게이트 인스턴스 생성, 모든 메소드를 체인으로 연결 ThereIsAFire Fire = new ThereIsAFire(Call119); Fire += ShotOut; Fire += Escape; // 3. 델리게이트 실행 Fire("송정동"); }
static void Main(string[] args) { ThereIsAFire Fire = new ThereIsAFire(Call119); //대리자 호출, Call119() 메소드를 매개 변수로 Fire += new ThereIsAFire(Shoutout); Fire += new ThereIsAFire(Escape); //Fire = (ThereIsAFire)Delegate.Combine(new ThereIsAFire(Call119),new ThereIsAFire(Shoutout)) Fire("우리집"); }
static void Main(string[] args) { ThereIsAFire Fire = new ThereIsAFire(Call119); Fire += new ThereIsAFire(ShotOut); Fire += new ThereIsAFire(Escape); Fire("우리집"); ThereIsAFire Fire2 = new ThereIsAFire(Call119) + new ThereIsAFire(ShotOut) + new ThereIsAFire(Escape); Fire2("너희집"); }
static void Main(string[] args) { // 2. 델리게이트 인스턴스 생성, 인스턴스에 메소드를 연결 ThereIsAFire Fire = new ThereIsAFire(Call119); Fire += ShotOut; Fire += Escape; // 4. 델리게이트 실행 Fire("송정동"); ThereIsAFire Fire2 = new ThereIsAFire(Call119) + new ThereIsAFire(ShotOut) + new ThereIsAFire(Escape); Fire2("우리집"); }
public void DelegateChainExample() { //델리게이트 체인 여러개의 델리게이트를 연결해서 사용한다. //+ 로 사슬을 연결한다. 끊어낼때는 - 연산자를 사용하면 된다. // + 연산자 사용하기 ThereIsAFire Fire = new ThereIsAFire(Call119) + new ThereIsAFire(ShotOut) + new ThereIsAFire(Escape); // Delegate.Combine()메소드 사용하기 ThereIsAFire Fire2 = (ThereIsAFire) Delegate.Combine(new ThereIsAFire(Call119), new ThereIsAFire(ShotOut), new ThereIsAFire(Escape)); Fire("응용소프트웨어실습"); }