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); }
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); }