Esempio n. 1
0
        public void 델리게이트는_어떻게쓰는지()
        {
            // Arrange (데이터 정렬)
            DelegateTestName delegateExample = 멤버변수를_플러스1합니다;

            _iTestNumber = 0;

            // Action (기능 실행) &&  Assert (맞는지 체크)
            delegateExample();
            Assert.AreEqual(_iTestNumber, 1);

            delegateExample();
            Assert.AreEqual(_iTestNumber, 2);



            // 마이너스 익명 메소드를 델리게이트 변수에 대입
            // Arrange (데이터 정렬)
            delegateExample = () => -- _iTestNumber;

            // Action (기능 실행) &&  Assert (맞는지 체크)
            delegateExample();
            Assert.AreEqual(_iTestNumber, 1);

            delegateExample();
            Assert.AreEqual(_iTestNumber, 0);


            // 델리게이트 체인 문법
            // 델리게이트 변수에 + 혹은 -를 하면 여러개의 함수를 대입할 수 있습니다
            // 이 경우는 마이너스 익명메소드와 플러스 멤버메소드를 연달아 대입했으므로, TestNumber는 변하지 않습니다
            // Arrange (데이터 정렬)
            delegateExample += 멤버변수를_플러스1합니다;

            // Action (기능 실행) &&  Assert (맞는지 체크)
            delegateExample();
            Assert.AreEqual(_iTestNumber, 0);

            delegateExample();
            Assert.AreEqual(_iTestNumber, 0);
        }
Esempio n. 2
0
        public void 델리게이트가_Null일때_사용하면_Exception을뱉습니다()
        {
            // Arrange (데이터 정렬)
            DelegateTestName delegateExample = null;
            bool             bIsException    = false;


            // Action (기능 실행)
            try
            {
                // Null이 담긴 Delegate를 사용하면 NullException Throw
                delegateExample();
            }
            catch
            {
                bIsException = true;
            }


            // Assert (맞는지 체크)
            Assert.IsTrue(bIsException);
        }