Esempio n. 1
0
        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)}");
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            ThereIsAFire fire = new ThereIsAFire(Call119);

            fire += new ThereIsAFire(ShotOut); // 기본문법
            fire += Escape;                    // 약식문법

            fire("문현동 전광빌라");
        }
Esempio n. 3
0
        static void Main(string[] args)
        {
            ThereIsAFire fire = new ThereIsAFire(ShoutOut);

            fire += Call119;
            fire += Escape;

            fire("부경대학교 대연캠퍼스 C23");
        }
Esempio n. 4
0
        static void Main(string[] args)
        {
            // 2. 델리게이트 인스턴스 생성, 모든 메소드를 체인으로 연결
            ThereIsAFire Fire = new ThereIsAFire(Call119);

            Fire += ShotOut;
            Fire += Escape;

            // 3. 델리게이트 실행
            Fire("송정동");
        }
Esempio n. 5
0
        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("너희집");
        }
Esempio n. 7
0
        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("응용소프트웨어실습");
        }